53
Hier wird Wissen Wirklichkeit Modul: Programmierung B-PRG Grundlagen der Programmierung 1 – Teil 1 – V5 Zeichenketten, Strings und Listen Prof. Dr. Detlef Krömker Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (12)

Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Embed Size (px)

Citation preview

Page 1: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Hier wird Wissen Wirklichkeit

Modul: Programmierung B-PRGGrundlagen der Programmierung 1 – Teil 1 – V5

Zeichenketten, Strings und Listen

Prof. Dr. Detlef KrömkerProfessur für Graphische DatenverarbeitungInstitut für InformatikFachbereich Informatik und Mathematik (12)

Page 2: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker2 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Rückblick

Kodierung numerischer DatentypenGanze Zahlen (Integer) als DualzahlenGleitkommazahlen (floating point numbers)Alternative Dezimalzahlendarstellungen

Objekte in Python

Elementare numerische Datentypen in PythonNumerische DatentypenOperationen auf ZahlenVergleichsoperatorenAusdrücke

Page 3: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker3 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Unser heutiges Lernziel

Zeichenketten als elementare Datentypen sollen verstanden werden

- einschließlich ihrer Besonderheiten.

Page 4: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker4 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Übersicht

Was ist Text?

Welche Schriftarten existieren?

Was sind Zeichenketten?

Was sind Zeichensätze?

Wie werden diese im Computer codiert?

Page 5: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker5 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Text

= geschriebene Sprache (im engeren Sinne)

kommt von lat. textus =� Gewebe� Geflecht� Stoff

Page 6: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker6 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Funktionale Verbindung zwischen Text und Gewebe

linear-temporäre Aneinanderreihung von Zeichen und Worten kann in eine semantische Netzwerkrepräsentation transformiert werden

=>Text „verstrickt“ und „verflechtet“ Objekte und Akteure (Knoten)

miteinander.

TextSemantisches

Netzwerk

Page 7: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker7 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Über die 3 Parzen (lat.), 3 Moiren (griech.), 3 Nornen (germ.) bzw. 3 Raunende (nord.)

z.B. Griechische Mythologie: Klotho (Faden-Spinnerin), Lachesis (Erzählende) und Atropos (Faden-Schneiderin)weben zusammen den „roten Faden“ des Schicksals zur „Lebensgeschichte“.

z.B. Germanische Mythologie: Urd (Vergangenheit), Verdandi(Gegenwart) und Skuld (Zukunft) stricken Schicksalsfäden und -gewebe. Sie benutzen Buchen-Stäbe (Buchstaben) und werfen es auf dieses Stück Stoff, um Schicksal vorherzubestimmen.

Mythologische Verbindung zwischen Gewebe und Text

Page 8: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker8 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Darstellung des Textes

benötigt eine Schrift, deren Zeichen wahlweise� Phoneme � Silben � Wörter bzw. Begriffe kodieren.

Page 9: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker9 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Klassifikation der Schriften

Alphabetschrift Zeichen ~ Laut

Silbenschrift Zeichen ~ Silbe

Logogramme Zeichen ~ Wort, Aussage, Anweisung

Page 10: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker10 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Alphabetschrift

Alphabet (von gr. αλφάβητο [alfáwito] - Alpha & Beta)

Beispiele: � Lateinische Schriften: Den største skriften� IPA-Lautschrift: [alfáwito]� Kyrillisch: Ду бист кайн Весси!� Griechische Schrift: αλφάβητο� Tengwar, Sindarin,

Elfisch... :

Page 11: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker11 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Silbenschrift

Beispiele: � Cherokee

(siehe rechts)� Kyprisch� Linear B� Akkadische

Keilschrift

Page 12: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker12 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Wortbildschrift, Logogrammschrift

Beispiele: � Hanzi (chinesisch – siehe rechts)� Hanja (koreanisch)� Maja-Schrift� Jurjen� Tangut

Page 13: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker13 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Sonderformen der Logogramme

Ziffernsysteme&Symbolik der Mathematik

Piktogramme

Page 14: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker14 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Klassifikation der Schriften (Besonderheiten)

Hybride Systeme z.B. Japanisch = Kombination

aus Silbenschrift (Hiragana, Katagana) und Logogrammschrift (Kanji)

Modifizierte Alphabetschriften z.B. Arabisch (codiert i.d.R. nur

Konsonanten und lange Vokale)

Page 15: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker15 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Schriftsysteme der Welt

http://de.wikipedia.org/wiki/Schrift

Page 16: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker16 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Begriff: Alphabet in der Informatik

Ist in der Informatik weiter gefasst als in der Lingustik

Unter Alphabet versteht man (z.B. nach DIN 44300) eine total geordnete endliche Menge (oft nichtleere endliche Menge) von unterscheidbaren Symbolen (Zeichen).

Häufig Σ als Zeichen

Page 17: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker17 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Begriff: Zeichenreihe

Zeichenreihen = endliche lineare Reihen von Zeichen eines Alphabets Σ

Übrigens: Auch die Zeichenreihe, die keine Zeichen enthält, ist ein Wort - das leere Wort. Es wird mit εbezeichnet.

Page 18: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker18 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Begriff: Kleensche Hülle

Unter der Kleeneschen Hülle Σ* versteht man die Menge aller Wörter (i.d.F. Zeichenreihen) über dem Alphabet Σ.

Page 19: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker19 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Beispiel Dezimalsystem:

Σ = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }

Σ* = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ... }

Page 20: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker20 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Begriff: Zeichensatz

Die Zuordnung von alphanumerischen Zeichen (Buchstaben und Ziffern) sowie Sonderzeichen zu einem Zahlencode.

Beispiele: � ASCII (meist verwendet) � IBM EBCDIC (verliert an Bedeutung)

Page 21: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker21 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Problematik Zeichensatz

früher nur 7 oder 8 Bit für ein Zeichen verwendet => Unzählige nationale Varianten z.B. Umlaute und scharfes S im Deutschen

Lösungsversuch:

Unicode mit 16 Bit

Page 22: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker22 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Begriff: Schriftart

Synonyme: font, typeface

Bekannte Schriftarten:ArialTimes New Roman Frutiger lightCourier NewImpactCentury Gothic

Page 23: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker23 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Proportionale vs. Nicht-proportionale Schriften

Nichtproportionale Schriften

(fixe Typenbreite)

(Courier New, Lucida Console, ...)

Proportionale Schriften

(veränderliche Typenbreite)

(Arial, Times, Frutiger, ..)

Page 24: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker24 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Grotesk vs. Antiqua

Grotesten-Schriften(ohne Serifen)

(Arial, Frutiger, LucidaConsole, ...)

Antiqua-Schriften(mit Serifen)

(Times, Courier New, ..)

Page 25: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker25 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Internationale Zeichensätze

ASCII Einer der ältesten Computer-Zeichensätze – 7 Bit

1963 Sehr weit verbreitet,(Programmiersprachen, Internet-Adressen, etc.)

ISO/IEC 8859 15 verschiedenen Kodierungen zur Abdeckung europäischer Sprachen sowie arabisch, hebräisch, thailändisch und türkisch

1986 u.a. in Linux und MS Windows verwendet.

Unicode ISO/IEC 10646 -– 1991

Internationaler Standard – (7) 8, 16 oder 32 Bit

1991 nimmt an Bedeutung stark zu

Page 26: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker26 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ISO 646� Nationale 7 Bit Varianten der ASCII Codierung

� IA5 (Internationales Alphabet Nr. 5)

� Für die nationalen Versionen sind 12 Positionen im Zeichensatz für national definierte Zeichen freigegeben. Die deutsche Variante ist in DIN 66003 festgelegt und ist als Variante 21 registriert

� veraltet

Page 27: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker27 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Weitere nationale ZeichensätzeARMSCII ArmenischBig5 Chinesisch (Taiwan)Guojia BiaozhunZeichensatz für vereinfachte chinesische SchriftzeichenHKSCS Chinesisch (Hong Kong)ISCII Alle indischen SprachenKOI8-R RussischKOI8-U Ukrainisch TIS-620 Thailändisch, ähnlich ISO 8859-11 (1990)TSCII TamilVISCII VietnamesischSJIS Japanisch, entworfen von MicrosoftEUC „Extended UNIX Coding“ Mehrere ostasiatische Sprachen

Page 28: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker28 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Proprietäre Zeichensätze von Computerfirmen EBCDIC Von IBM entwickelter Zeichensatz

MacRoman, MacCyrillic für Apple Mac Computer vor Mac OS X (seit OS X wird Unicode verwendet)

Windows- und DOS-Codepages Windows-1252; MS-DOS Codepage437, Codepage 850

Windows Glyph List 4

Page 29: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker29 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ASCII genauer unter die Lupe genommen � American Standard Code for Information Interchange

� Entwickelt von: 1963 als 6-Bit-Code (ohne Kleinbuchstaben) von Bob Bemer

� Eingeführt 1968

Page 30: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker30 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ASCII genauer unter die Lupe genommen ASCII

Code

…0 …1 …2 …3 …4 …5 …6 …7 …8 …9 …A …B …C …D …E …F

0… NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI

1… DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US

2… SP ! " # $ % & ' ( ) * + , - . /

3… 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

4… @ A B C D E F G H I J K L M N O

5… P Q R S T U V W X Y Z [ \ ] ^ _

6… ` a b c d e f g h i j k l m n o

7… p q r s t u v w x y z { | } ~ DEL

Page 31: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker31 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ASCII-Anekdote

APPLE ÜÄAPPLE ÜÄAPPLE ÜÄAPPLE ÜÄ

Page 32: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker32 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ASCII-Anekdote

APPLE ÅÆAPPLE ÅÆAPPLE ÅÆAPPLE ÅÆ

Page 33: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker33 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ASCII genauer unter die Lupe genommen Problem: ASCII enthält keine diakritischen Zeichen!

� 1972 Einführung von ISO 646-IRV

� Internationale Kompatibilitätsprobleme

APPLE ][APPLE ][APPLE ][APPLE ][

APPLE ÜÄAPPLE ÜÄAPPLE ÜÄAPPLE ÜÄ

APPLE ÅÆAPPLE ÅÆAPPLE ÅÆAPPLE ÅÆ

APPLE ÕÃAPPLE ÕÃAPPLE ÕÃAPPLE ÕÃ

Page 34: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker34 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ASCII genauer unter die Lupe genommen (ISO 646-IRV) 23 24 40 5B 5C 5D 5E 60 7B 7C 7D 7E

ISO 646-IRV # ¤ @ [ \ ] ^ ` { | } ~Deutschland # $ § Ä Ö Ü ^ ` ä ö ü ßSchweiz ù $ à é Ç ê î ô ä ö ü ûUSA (ASCII) # $ @ [ \ ] ^ ` { | } ~UK £ $ @ [ \ ] ^ ` { | } ~Frankreich £ $ à ° Ç § ^ ` é ù é ¨Kanada # $ à â Ç ê î ô é ù é ûFinnland # $ @ Ä Ö Å Ü é ä ö å üNorwegen # $ @ Æ Ø Å ^ ` æ ø å ~Schweden # $ É Ä Ö Å Ü é ä ö å üItalien £ $ § ° Ç é ^ ù à ò ù ìNiederlande £ $ ¾ ÿ ½ | ^ ` ¨ ƒ ¼ ´Spanien £ $ § ¡ Ñ ¿ ^ ` ° ñ ç ~Portugal # $ @ Ã Ç Õ ^ ` ã ç õ ~

Page 35: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker35 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ASCII genauer unter die Lupe genommen

� Internationale Kompatibilitätsprobleme

� Proprietäre 8-Bit Formate

� Codepage 473 (IBM-PC unter MS-DOS)

� Auch heute noch bei Eingabeaufforderungs-Fenstern unter Windows

Page 36: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker36 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ISO IEC 8859 8-Bit-Zeichensatz aufbauend auf ASCII (erste 7 Bits)

Halbherzig => Wieder mehrere Varianten (z.B. ISO 8859-1 für westeuropäische Länder)

=> 15 verschiedene Zeichensätze (1 bis 16 ohne 12)

Page 37: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker37 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

ISO IEC 8859 -1 Latin-1 Westeuropäisch-2 Latin-2 Osteuropäisch-3 Latin-3 Südeuropäisch-4 Latin-4 Baltisch-5 Kyrillisch-6 Arabisch-7 Griechisch-8 Hebräisch-9 Latin-5 Türkisch -10 Latin-6 Nordisch-11 Thai-13 Latin-7 Baltisch-14 Latin-8 Keltisch-15 Latin-9 Westeuropäisch-16 Latin-10 Südosteuropäisch

Veränderung an 8 Positionen (u.a. €-Zeichen)

Page 38: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker38 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Unicode - Identisch mit Universal Character Set (UCS nach ISO 10646)- 42 Bit / Zeichen => über vier Milliarden Möglichkeiten- Aber nur ~1 Million prinzipiell erlaubte Code-Werte

- Unicode provides a unique number for every character,no matter what the platform,no matter what the program,no matter what the language.

Page 39: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker39 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Unicode - Die Codes von Unicode-Zeichen werden hexadezimal mit

vorangestelltem U+ notiert.

- ursprünglich 65.536 Zeichen (UCS-2, 16 Bit)

- In Version 2.0 wurde der Codebereich um weitere 16 gleichgroße Bereiche, sogenannte Planes erweitert. Somit sind nun maximal 1.114.112 (220+216) Zeichen bzw. Codepoints (=eindeutige Zeichennummer )im Codebereich von U+00000 bis U+10FFFF vorgesehen (UCS-4, 32 Bit).

- Bislang, in Unicode 4.0, sind bisher 96.382 Codes individuellen Zeichen zugeordnet. Das entspricht nur etwa erst 9% des Coderaumes.

Page 40: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker40 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Unicode - Die Codes von Unicode-Zeichen werden hexadezimal mit

vorangestelltem U+ notiert.

- ursprünglich 65.536 Zeichen (UCS-2, 16 Bit)

- In Version 2.0 wurde der Codebereich um weitere 16 gleichgroße Bereiche, sogenannte Planes erweitert. Somit sind nun maximal 1.114.112 (220+216) Zeichen bzw. Codepoints (=eindeutige Zeichennummer )im Codebereich von U+00000 bis U+10FFFF vorgesehen (UCS-4, 32 Bit).

- Bislang, in Unicode 4.0, sind bisher 96.382 Codes individuellen Zeichen zugeordnet. Das entspricht nur etwa erst 9% des Coderaumes.

Page 41: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker41 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Unicode Transformation Format (UTF),256 „Variation Selectors“ für Glyphenvarianten (Fraktur,

Handschrift, Antiqua, etc.)

Für die unteren 256 Zeichen die weit verbreitete ISO 8859-1-Kodierung (Latin1) beibehalten

Page 42: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker42 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Erstellen von Unicode-ZeichenBeispiel „⊕⊕⊕⊕“

Suche in entsprechender Tabelle (hier: Mathematische Symbole) =>hexadezimale Zeichennummer

Python: Voranstellen von \uHHHH (vier Hexadezimale Ziffern (0 .. 65.536) in Python hier \u2295

HTML oder XML: „&#x2295;“Die Zeichennummer kann auch dezimal, dann ohne führendes „x“, angegeben werden, zum Beispiel „&#8853;“ für das gleiche Zeichen.

Page 43: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker43 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Erstellen von Unicode-ZeichenDie Text Encoding Initiative TEI hat Empfehlungen erarbeitet, Unicode in XML-Dateien in leichter verständlicher Form einzugeben. Hier handelt es sich um einen Satz benannter Zeichen (engl.: namedentites), der in das Stylesheet integriert wird. Allgemein übliche benannte Zeichen sind z.B. die Umlaute wie „&Auml;“ statt „&#196;" für Ä.

Page 44: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker44 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Zeichenketten in Python

Python implementiert zwei verschiedene Basis-Typen für Zeichenketten (strings):

· Strings (8-Bit, ein Oktett, ein Byte)

· Unicode-Strings (variable Codelänge von 8-32 Bits)

Page 45: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker45 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Zeichenketten in Python

Strings können in einfachen,doppelten oderdreifachen

Anführungszeichen geschrieben werden

=> Unterschiede

Page 46: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker46 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Zeichenketten in Python

>>> "Hello World“

"Hello World“>>> 'Python ist toll!‚'Python ist toll!‚>>> """Python isttoll!""„>>> print _Python isttoll! >>>'Python isttoll!'SyntaxError: EOL while scanning single-quoted string

Page 47: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker47 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Zeichenketten in Python>>> 'Python ist \

toll!‚

'Python ist toll!‚

>>> """Auch Möchtegerne müssen 0,00€ für Python bezahlen""„'Auch M\xf6chtegerne m\xfcssen 0,00\x80 f\xfcr Python bezahlen‚>>> print ­_Auch Möchtegerne müssen 0,00€ für Python bezahlen

\ (Backslash) verlängert die physische Zeile zu einer logischen Zeile.

Page 48: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker48 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Zeichenketten in Python

Strings sind Zeichen-Sequenzen, die mit ganzen Zahlen, beginnend bei Null, indiziert werden. Um auf ein einzelnes Zeichen davon zuzugreifen, verwendet man den Index-Operator s[ i ] wie folgt:

a = "Hello World"a = "Hello World"a = "Hello World"a = "Hello World"

b = a[4] # b = 'o'b = a[4] # b = 'o'b = a[4] # b = 'o'b = a[4] # b = 'o'

Page 49: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker49 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Zeichenketten in PythonUm einen Teilstring zu erhalten, benutzt man den Teilbereichsoperator (engl. slice) s[i:j]. Dieser extrahiert alle Elemente von s, deren Index k im Intervall i <= k < j liegt. Falls einer der beiden Indizes weggelassen wird, so wird entweder der Anfang oder das Ende des Strings angenommen:

a = a = a = a = ““““Hello WorldHello WorldHello WorldHello World””””c = a[0:5] # c = "Hello"c = a[0:5] # c = "Hello"c = a[0:5] # c = "Hello"c = a[0:5] # c = "Hello"d = a[6:] # d = "World"d = a[6:] # d = "World"d = a[6:] # d = "World"d = a[6:] # d = "World"e = a[3:8] # e = "e = a[3:8] # e = "e = a[3:8] # e = "e = a[3:8] # e = "lolololo Wo"Wo"Wo"Wo"

Page 50: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker50 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Zusammenfassung

Jetzt müssen Sie üben, direkt mit dem Interpreter!

Page 51: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker51 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Anmerkung zur Übung

AufgabeAufgabeAufgabeAufgabe 3.2.C3.2.C3.2.C3.2.C

StattStattStattStatt x*logx*logx*logx*log10101010(4) (4) (4) (4)

x+logx+logx+logx+log10101010(4)(4)(4)(4)

Page 52: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker52 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

Fragen und (hoffentlich) Antworten

Page 53: Grundlagen der Programmierung 1 – Teil 1 – V5 · Prof. Dr. Detlef Krömker 7 Hier wird Wissen Wirklichkeit Programmieren 1 – Teil 1 – V5 WS 2005/2006 Über die 3 Parzen (lat.),

Prof. Dr. Detlef Krömker53 Hier wird Wissen WirklichkeitProgrammieren 1 – Teil 1 – V5WS 2005/2006

AusblickZeichenketten in ListenListenListenoperatorenu.v.m.

Danke für Ihre Aufmerksamkeit