24.02.2014 Aufrufe

4 in 1 - Medieninformatik - Hochschule RheinMain

4 in 1 - Medieninformatik - Hochschule RheinMain

4 in 1 - Medieninformatik - Hochschule RheinMain

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!