4 in 1 - Medieninformatik - Hochschule RheinMain
4 in 1 - Medieninformatik - Hochschule RheinMain
4 in 1 - Medieninformatik - Hochschule RheinMain
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Programmieren <strong>in</strong> Python<br />
Datentypen, Str<strong>in</strong>gs<br />
Programmieren <strong>in</strong> Python<br />
Datentypen, Str<strong>in</strong>gs<br />
Str<strong>in</strong>gs – weitere Features<br />
Eigenschaften von Str<strong>in</strong>gs<br />
str<strong>in</strong>g-Modul<br />
• als Modul “importieren”<br />
• Funktionen oder Str<strong>in</strong>g-Methoden<br />
• Groß- und Kle<strong>in</strong>schreibung<br />
• Suchen, f<strong>in</strong>den, ersetzen<br />
• Konvertieren, splitten, kleben<br />
• Konkatenation automatisch<br />
• Leerzeichen entfernen<br />
Kommandozeilenargumente<br />
• Modul sys<br />
• Liste von Argumente sys.argv<br />
$ python argv.py a b c d<br />
[’argv.py’, ’a’, ’b’, ’c’, ’d’]<br />
1 >>> import str<strong>in</strong>g<br />
2 >>> "ab".upper(), str<strong>in</strong>g.upper("ab")<br />
3 (’AB’, ’AB’)<br />
4 >>> str<strong>in</strong>g.f<strong>in</strong>d("spammify", "mm")<br />
5 3<br />
6 >>> str<strong>in</strong>g.atoi("42") # <strong>in</strong>t("42") besser<br />
7 42<br />
8 >>> str<strong>in</strong>g.split("spammify"), "mm")<br />
9 [’spa’, ’ify’]<br />
10 >>> "XX".jo<strong>in</strong>(["spa", "ify"])<br />
11 ’spaXXify’<br />
12 >>> "spa" "XX" "ify"<br />
13 ’spaXXify’<br />
14 >>> str<strong>in</strong>g.strip(" Mean<strong>in</strong>g of Life ")<br />
15 ’Mean<strong>in</strong>g of Life’<br />
1 #!/usr/b<strong>in</strong>/python<br />
2 import sys<br />
3 pr<strong>in</strong>t sys.argv<br />
Str<strong>in</strong>gs s<strong>in</strong>d unveränderlich<br />
• Operation mit Str<strong>in</strong>gs (+, [], etc.)<br />
erzeugen immer neue Str<strong>in</strong>gs<br />
• Vorhandene Str<strong>in</strong>gs werden niemals<br />
verändert<br />
Str<strong>in</strong>gs s<strong>in</strong>d Sequenzen<br />
• Geordnet, die Position der Elemente<br />
ist wichtig<br />
• Klare Menge von unterstützten<br />
Operationen<br />
• Sequenz von Zeichen<br />
Unicode Str<strong>in</strong>gs<br />
• u vor dem Str<strong>in</strong>g<br />
• Typ unicode, nicht str<br />
1 >>> s = "hallo"<br />
2 >>> s[0] = "H"<br />
3 Traceback (most recent call last):<br />
4 File "", l<strong>in</strong>e 1, <strong>in</strong> <br />
5 TypeError: ’str’ object does not<br />
6 support item assignment<br />
1 >>> s = u"hallo"<br />
2 >>> s<br />
3 u’hallo’<br />
4 >>> s == "hallo"<br />
5 True<br />
6 >>> type("hallo"), type(u"hallo")<br />
7 (, )<br />
8 >>> u"hallo" == "hallo"<br />
9 True<br />
>>> "hällo" == u"hällo"<br />
__ma<strong>in</strong>__:1: UnicodeWarn<strong>in</strong>g: Unicode<br />
equal comparison failed...<br />
Prof. Dr. Peter Barth (HS-Rhe<strong>in</strong>Ma<strong>in</strong>) Programmieren 3 29. Januar 2013 141 / 326<br />
Prof. Dr. Peter Barth (HS-Rhe<strong>in</strong>Ma<strong>in</strong>) Programmieren 3 29. Januar 2013 142 / 326<br />
Programmieren <strong>in</strong> Python<br />
Datentypen, Typhierarchie<br />
Programmieren <strong>in</strong> Python<br />
Kollektionen<br />
Typhierarchie e<strong>in</strong>gebauter Typen<br />
Kollektionen<br />
object als Wurzel für alle Typen<br />
is<strong>in</strong>stance zum Testen<br />
Ganze<br />
Zahlen<br />
<strong>in</strong>t<br />
long<br />
Zahlen<br />
float<br />
complex<br />
fractions.<br />
Fraction<br />
1 >>> is<strong>in</strong>stance(3, <strong>in</strong>t)<br />
2 True<br />
3 >>> is<strong>in</strong>stance(3, object)<br />
4 True<br />
object<br />
Kollektionen<br />
Sequenzen Mengen Abbildungen<br />
unveränderlich veränderlich set dict<br />
str<br />
list<br />
unicode<br />
tuple<br />
E<strong>in</strong>gebaute Kollektionen<br />
• E<strong>in</strong>gebaute Typen zum Verwalten von mehreren Objekten<br />
• Teil der Sprache, nicht nur der Bibliothek<br />
Vorteile<br />
• Effiziente Implementierung<br />
• E<strong>in</strong>fache Formulierung<br />
• Konzentration aufs Problem<br />
nicht auf technische<br />
Implementierungsdetails<br />
Umfangreich<br />
• Alles was man braucht<br />
• Ungefähr java.util.*<br />
• Str<strong>in</strong>gs, Listen, Tupel,<br />
Mengen, Wörterbücher<br />
object<br />
Kollektionen<br />
Sequenzen Mengen Abbildungen<br />
unveränderlich<br />
str<br />
unicode<br />
tuple<br />
veränderlich<br />
list<br />
set<br />
dict<br />
Prof. Dr. Peter Barth (HS-Rhe<strong>in</strong>Ma<strong>in</strong>) Programmieren 3 29. Januar 2013 143 / 326<br />
Prof. Dr. Peter Barth (HS-Rhe<strong>in</strong>Ma<strong>in</strong>) Programmieren 3 29. Januar 2013 144 / 326