+ All Categories
Home > Documents > Python für Einsteiger -...

Python für Einsteiger -...

Date post: 04-Jun-2018
Category:
Upload: nguyenkiet
View: 214 times
Download: 0 times
Share this document with a friend
193
Python für Einsteiger Tutorium über drei Stunden Thomas Lotze gocept gmbh & co. kg Halle (Saale) 29.10.2012, PyCon DE, Leipzig
Transcript
Page 1: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Python für EinsteigerTutorium über drei Stunden

Thomas Lotze

gocept gmbh & co. kgHalle (Saale)

29.10.2012, PyCon DE, Leipzig

Page 2: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 3: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 4: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 5: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 6: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 7: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 8: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Einleitung

Über das Thema: Was ist Python?interpretiert: schneller Entwicklungszyklus, einbettenimperativ mit Anleihen bei funktionalen Sprachenintuitiv, insbesondere gut lesbar

Über den Tutor: Python bei goceptgocept arbeitet von Anfang an (2000) mit Python und Zopepersönlich seit 2004

Über das Publikum: Vorwissen, Erwartungen, Wünsche?

Page 9: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Einleitung

Über das Thema: Was ist Python?interpretiert: schneller Entwicklungszyklus, einbettenimperativ mit Anleihen bei funktionalen Sprachenintuitiv, insbesondere gut lesbar

Über den Tutor: Python bei goceptgocept arbeitet von Anfang an (2000) mit Python und Zopepersönlich seit 2004

Über das Publikum: Vorwissen, Erwartungen, Wünsche?

Page 10: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Einleitung

Über das Thema: Was ist Python?interpretiert: schneller Entwicklungszyklus, einbettenimperativ mit Anleihen bei funktionalen Sprachenintuitiv, insbesondere gut lesbar

Über den Tutor: Python bei goceptgocept arbeitet von Anfang an (2000) mit Python und Zopepersönlich seit 2004

Über das Publikum: Vorwissen, Erwartungen, Wünsche?

Page 11: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Einleitung

Über das Thema: Was ist Python?interpretiert: schneller Entwicklungszyklus, einbettenimperativ mit Anleihen bei funktionalen Sprachenintuitiv, insbesondere gut lesbar

Über den Tutor: Python bei goceptgocept arbeitet von Anfang an (2000) mit Python und Zopepersönlich seit 2004

Über das Publikum: Vorwissen, Erwartungen, Wünsche?

Page 12: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Einleitung

Über das Thema: Was ist Python?interpretiert: schneller Entwicklungszyklus, einbettenimperativ mit Anleihen bei funktionalen Sprachenintuitiv, insbesondere gut lesbar

Über den Tutor: Python bei goceptgocept arbeitet von Anfang an (2000) mit Python und Zopepersönlich seit 2004

Über das Publikum: Vorwissen, Erwartungen, Wünsche?

Page 13: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Einleitung

Über das Thema: Was ist Python?interpretiert: schneller Entwicklungszyklus, einbettenimperativ mit Anleihen bei funktionalen Sprachenintuitiv, insbesondere gut lesbar

Über den Tutor: Python bei goceptgocept arbeitet von Anfang an (2000) mit Python und Zopepersönlich seit 2004

Über das Publikum: Vorwissen, Erwartungen, Wünsche?

Page 14: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Einleitung

Über das Thema: Was ist Python?interpretiert: schneller Entwicklungszyklus, einbettenimperativ mit Anleihen bei funktionalen Sprachenintuitiv, insbesondere gut lesbar

Über den Tutor: Python bei goceptgocept arbeitet von Anfang an (2000) mit Python und Zopepersönlich seit 2004

Über das Publikum: Vorwissen, Erwartungen, Wünsche?

Page 15: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Einleitung

Über das Thema: Was ist Python?interpretiert: schneller Entwicklungszyklus, einbettenimperativ mit Anleihen bei funktionalen Sprachenintuitiv, insbesondere gut lesbar

Über den Tutor: Python bei goceptgocept arbeitet von Anfang an (2000) mit Python und Zopepersönlich seit 2004

Über das Publikum: Vorwissen, Erwartungen, Wünsche?

Page 16: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 17: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 18: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Der Python-Interpreter

starten, z.B.

$ .../Python-3.3/bin/idle3

Fenster öffnet sichPython 3.3.0 (default, Oct 28 2012, 09:13:40)[GCC 4.6.3] on linuxType "copyright", "credits" or "license()" for more information.>>>

Funktionstest: Taschenrechner

>>> 2 + 24

Eingaben wiederholen, im Shell-Fenster suchen

Page 19: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Der Python-Interpreter

starten, z.B.

$ .../Python-3.3/bin/idle3

Fenster öffnet sichPython 3.3.0 (default, Oct 28 2012, 09:13:40)[GCC 4.6.3] on linuxType "copyright", "credits" or "license()" for more information.>>>

Funktionstest: Taschenrechner

>>> 2 + 24

Eingaben wiederholen, im Shell-Fenster suchen

Page 20: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Der Python-Interpreter

starten, z.B.

$ .../Python-3.3/bin/idle3

Fenster öffnet sichPython 3.3.0 (default, Oct 28 2012, 09:13:40)[GCC 4.6.3] on linuxType "copyright", "credits" or "license()" for more information.>>>

Funktionstest: Taschenrechner

>>> 2 + 24

Eingaben wiederholen, im Shell-Fenster suchen

Page 21: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Der Python-Interpreter

starten, z.B.

$ .../Python-3.3/bin/idle3

Fenster öffnet sichPython 3.3.0 (default, Oct 28 2012, 09:13:40)[GCC 4.6.3] on linuxType "copyright", "credits" or "license()" for more information.>>>

Funktionstest: Taschenrechner

>>> 2 + 24

Eingaben wiederholen, im Shell-Fenster suchen

Page 22: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Python als Taschenrechner

Grundrechenarten, Klammern

>>> (10 - 2) * 432

Gleitkommazahlen

>>> (10 - 2) / 42.0>>> (10.5 - 2.5) * 432.0

Potenzen und Ganzzahldivision>>> 2 ** 38>>> 10 // 42>>> -10 // 4-3

Page 23: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Python als Taschenrechner

Grundrechenarten, Klammern

>>> (10 - 2) * 432

Gleitkommazahlen

>>> (10 - 2) / 42.0>>> (10.5 - 2.5) * 432.0

Potenzen und Ganzzahldivision>>> 2 ** 38>>> 10 // 42>>> -10 // 4-3

Page 24: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Python als Taschenrechner

Grundrechenarten, Klammern

>>> (10 - 2) * 432

Gleitkommazahlen

>>> (10 - 2) / 42.0>>> (10.5 - 2.5) * 432.0

Potenzen und Ganzzahldivision>>> 2 ** 38>>> 10 // 42>>> -10 // 4-3

Page 25: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Ausdrücke und Anweisungen

gesehen: Python-Shell liest Ausdruck ein, berechnet ihn,gibt seinen Wert aus>>> 2 + 24

auch möglich: Python-Shell liest Anweisung ein, führt sieaus, kein Wert zum Ausgeben; Beispiel: Zuweisung>>> x = 2 + 2

Anweisungen haben Nebenwirkungen: Variable mit Wertbelegt, kann in Ausdrücken verwendet werden>>> x4>>> x + 37

Page 26: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Ausdrücke und Anweisungen

gesehen: Python-Shell liest Ausdruck ein, berechnet ihn,gibt seinen Wert aus>>> 2 + 24

auch möglich: Python-Shell liest Anweisung ein, führt sieaus, kein Wert zum Ausgeben; Beispiel: Zuweisung>>> x = 2 + 2

Anweisungen haben Nebenwirkungen: Variable mit Wertbelegt, kann in Ausdrücken verwendet werden>>> x4>>> x + 37

Page 27: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Ausdrücke und Anweisungen

gesehen: Python-Shell liest Ausdruck ein, berechnet ihn,gibt seinen Wert aus>>> 2 + 24

auch möglich: Python-Shell liest Anweisung ein, führt sieaus, kein Wert zum Ausgeben; Beispiel: Zuweisung>>> x = 2 + 2

Anweisungen haben Nebenwirkungen: Variable mit Wertbelegt, kann in Ausdrücken verwendet werden>>> x4>>> x + 37

Page 28: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler

Beispiel: unverständliche Eingabe>>> 2 2SyntaxError: invalid syntax

Beispiel: unbekannte Variable wird benutzt>>> yTraceback (most recent call last):...

NameError: name ’y’ is not defined

Fehler werden abgefangen, Interpreter läuft weiterFehlermeldung informativ: Art des Fehlers, ggf. Ort imProgramm

Page 29: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler

Beispiel: unverständliche Eingabe>>> 2 2SyntaxError: invalid syntax

Beispiel: unbekannte Variable wird benutzt>>> yTraceback (most recent call last):...

NameError: name ’y’ is not defined

Fehler werden abgefangen, Interpreter läuft weiterFehlermeldung informativ: Art des Fehlers, ggf. Ort imProgramm

Page 30: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler

Beispiel: unverständliche Eingabe>>> 2 2SyntaxError: invalid syntax

Beispiel: unbekannte Variable wird benutzt>>> yTraceback (most recent call last):...

NameError: name ’y’ is not defined

Fehler werden abgefangen, Interpreter läuft weiterFehlermeldung informativ: Art des Fehlers, ggf. Ort imProgramm

Page 31: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler

Beispiel: unverständliche Eingabe>>> 2 2SyntaxError: invalid syntax

Beispiel: unbekannte Variable wird benutzt>>> yTraceback (most recent call last):...

NameError: name ’y’ is not defined

Fehler werden abgefangen, Interpreter läuft weiterFehlermeldung informativ: Art des Fehlers, ggf. Ort imProgramm

Page 32: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 33: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Programm schreiben und ausführen

in idle neues Fenster öffnen, Programm schreiben

1 x = 12 x

Programm speichern (C-S), ausführen (F5)>>> ========== RESTART ==========>>>

keine Ausgabe: Ausdruck wird zwar ausgewertet, abernichts sorgt dafür, daß der Wert ausgegeben wird

Page 34: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Programm schreiben und ausführen

in idle neues Fenster öffnen, Programm schreiben

1 x = 12 x

Programm speichern (C-S), ausführen (F5)>>> ========== RESTART ==========>>>

keine Ausgabe: Ausdruck wird zwar ausgewertet, abernichts sorgt dafür, daß der Wert ausgegeben wird

Page 35: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Programm schreiben und ausführen

in idle neues Fenster öffnen, Programm schreiben

1 x = 12 x

Programm speichern (C-S), ausführen (F5)>>> ========== RESTART ==========>>>

keine Ausgabe: Ausdruck wird zwar ausgewertet, abernichts sorgt dafür, daß der Wert ausgegeben wird

Page 36: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Die Funktion print()

Wert eines Ausdrucks auf die Standardausgabe druckenx = 1print(x)

Zeichenketten ausgeben: print() druckt den Inhalt>>> print(’Hallo Welt\n==========’)Hallo Welt==========

Gegensatz: Interpreter gibt eine Darstellung aus>>> ’Hallo Welt\n==========’’Hallo Welt\n==========’

Page 37: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Die Funktion print()

Wert eines Ausdrucks auf die Standardausgabe druckenx = 1print(x)

Zeichenketten ausgeben: print() druckt den Inhalt>>> print(’Hallo Welt\n==========’)Hallo Welt==========

Gegensatz: Interpreter gibt eine Darstellung aus>>> ’Hallo Welt\n==========’’Hallo Welt\n==========’

Page 38: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Die Funktion print()

Wert eines Ausdrucks auf die Standardausgabe druckenx = 1print(x)

Zeichenketten ausgeben: print() druckt den Inhalt>>> print(’Hallo Welt\n==========’)Hallo Welt==========

Gegensatz: Interpreter gibt eine Darstellung aus>>> ’Hallo Welt\n==========’’Hallo Welt\n==========’

Page 39: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Objektdarstellung

Objektdarstellung macht Art des Objekts deutlich, nützlichfür Programmierer>>> 20122012>>> ’2012’’2012’

Ausgabe von print() ist für Benutzer gedacht>>> print(2012)2012>>> print(’2012’)2012

Objektdarstellung mit repr() erzeugen>>> print(repr(2012))2012>>> print(repr(’2012’))’2012’

Page 40: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Objektdarstellung

Objektdarstellung macht Art des Objekts deutlich, nützlichfür Programmierer>>> 20122012>>> ’2012’’2012’

Ausgabe von print() ist für Benutzer gedacht>>> print(2012)2012>>> print(’2012’)2012

Objektdarstellung mit repr() erzeugen>>> print(repr(2012))2012>>> print(repr(’2012’))’2012’

Page 41: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Objektdarstellung

Objektdarstellung macht Art des Objekts deutlich, nützlichfür Programmierer>>> 20122012>>> ’2012’’2012’

Ausgabe von print() ist für Benutzer gedacht>>> print(2012)2012>>> print(’2012’)2012

Objektdarstellung mit repr() erzeugen>>> print(repr(2012))2012>>> print(repr(’2012’))’2012’

Page 42: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Eingebaute Funktionen

print(), repr() bereits gesehenhelp(): interaktive HilfeHilfe zu Funktionen: help(print), help(help)Variablen im Interpreter: dir(), vars()

Page 43: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Eingebaute Funktionen

print(), repr() bereits gesehenhelp(): interaktive HilfeHilfe zu Funktionen: help(print), help(help)Variablen im Interpreter: dir(), vars()

Page 44: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Eingebaute Funktionen

print(), repr() bereits gesehenhelp(): interaktive HilfeHilfe zu Funktionen: help(print), help(help)Variablen im Interpreter: dir(), vars()

Page 45: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Eingebaute Funktionen

print(), repr() bereits gesehenhelp(): interaktive HilfeHilfe zu Funktionen: help(print), help(help)Variablen im Interpreter: dir(), vars()

Page 46: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 47: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 48: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Beispiel: while-Schleife

bisher Einzeiler benutzt: syntaktisch trivialBlöcke: aufeinander bezogene Zeilenx = 1while x < 100:

print(x)x *= 2

Ergebnis:1248163264

Page 49: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Beispiel: while-Schleife

bisher Einzeiler benutzt: syntaktisch trivialBlöcke: aufeinander bezogene Zeilenx = 1while x < 100:

print(x)x *= 2

Ergebnis:1248163264

Page 50: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Beispiel: while-Schleife

bisher Einzeiler benutzt: syntaktisch trivialBlöcke: aufeinander bezogene Zeilenx = 1while x < 100:

print(x)x *= 2

Ergebnis:1248163264

Page 51: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zum Vergleich: Ruby und C

x = 1while x < 100

puts xx *= 2

end

x = 1while x < 100

puts(x)x *= 2

end

#include <stdio.h>void main(int argc, char *argv[]) {

int x = 1;while (x < 100) {printf("%d\n", x);x *= 2;

}

}

int x = 1;do {printf("%d\n", x);x *= 2;

} while (x < 100);

Page 52: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zum Vergleich: Ruby und C

x = 1while x < 100

puts xx *= 2

end

x = 1while x < 100

puts(x)x *= 2

end

#include <stdio.h>void main(int argc, char *argv[]) {

int x = 1;while (x < 100) {printf("%d\n", x);x *= 2;

}

}

int x = 1;do {

printf("%d\n", x);x *= 2;

} while (x < 100);

Page 53: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Python im Vergleich

Blöcke eingerückt, durch :eingeleitet, implizites Endeimplizite Zeilenenden, kein ;

x = 1while x < 100:

print(x)x *= 2

minimalistische Syntax:keine Klammern {}, keine unnötigen Schlüsselwörter (do)Einheitlichkeit: immer Klammern um Funktionsargumente,nur eine Art von while-SchleifenVariablen implizit deklariertwesentliche Funktionen schon eingebautkein Grundgerüst (main)sinnvolle Vorgaben: Umwandlung in String undZeilenumbruch implizit in print()

Page 54: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 55: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen

while-Schleifen bereits gesehenfor-Schleifen iterieren über Sammlungen von Elementen>>> for x in [1, 2, 4, 7]:... print(x, end=’ ’)1 2 4 7

Iteration über Zahlenfolge mit range()>>> for x in range(3, 7):... print(x, end=’ ’)3 4 5 6

ausdrucksstärker als Mechanik mit Schritt und AbbruchKonvention in Python: halboffene Intervalle, a ≤ x < b

Page 56: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen

while-Schleifen bereits gesehenfor-Schleifen iterieren über Sammlungen von Elementen>>> for x in [1, 2, 4, 7]:... print(x, end=’ ’)1 2 4 7

Iteration über Zahlenfolge mit range()>>> for x in range(3, 7):... print(x, end=’ ’)3 4 5 6

ausdrucksstärker als Mechanik mit Schritt und AbbruchKonvention in Python: halboffene Intervalle, a ≤ x < b

Page 57: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen

while-Schleifen bereits gesehenfor-Schleifen iterieren über Sammlungen von Elementen>>> for x in [1, 2, 4, 7]:... print(x, end=’ ’)1 2 4 7

Iteration über Zahlenfolge mit range()>>> for x in range(3, 7):... print(x, end=’ ’)3 4 5 6

ausdrucksstärker als Mechanik mit Schritt und AbbruchKonvention in Python: halboffene Intervalle, a ≤ x < b

Page 58: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen

while-Schleifen bereits gesehenfor-Schleifen iterieren über Sammlungen von Elementen>>> for x in [1, 2, 4, 7]:... print(x, end=’ ’)1 2 4 7

Iteration über Zahlenfolge mit range()>>> for x in range(3, 7):... print(x, end=’ ’)3 4 5 6

ausdrucksstärker als Mechanik mit Schritt und AbbruchKonvention in Python: halboffene Intervalle, a ≤ x < b

Page 59: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen

while-Schleifen bereits gesehenfor-Schleifen iterieren über Sammlungen von Elementen>>> for x in [1, 2, 4, 7]:... print(x, end=’ ’)1 2 4 7

Iteration über Zahlenfolge mit range()>>> for x in range(3, 7):... print(x, end=’ ’)3 4 5 6

ausdrucksstärker als Mechanik mit Schritt und AbbruchKonvention in Python: halboffene Intervalle, a ≤ x < b

Page 60: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Bedingungen

einfache Alternativeif x > 0:

print(’positiv’)else:

print(’nicht positiv’)

mehrfache Fallunterscheidungif x > 0:

print(’positiv’)elif x < 0:

print(’negativ’)else:

print(’null’)

Python kennt kein switch, nur Mehrfachbedingungen

Page 61: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Bedingungen

einfache Alternativeif x > 0:

print(’positiv’)else:

print(’nicht positiv’)

mehrfache Fallunterscheidungif x > 0:

print(’positiv’)elif x < 0:

print(’negativ’)else:

print(’null’)

Python kennt kein switch, nur Mehrfachbedingungen

Page 62: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Bedingungen

einfache Alternativeif x > 0:

print(’positiv’)else:

print(’nicht positiv’)

mehrfache Fallunterscheidungif x > 0:

print(’positiv’)elif x < 0:

print(’negativ’)else:

print(’null’)

Python kennt kein switch, nur Mehrfachbedingungen

Page 63: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen steuern: continue, break

Iterationsschritt überspringen:>>> i = 0>>> while i < 5:... i += 1... if i == 3:... continue... print(i, end=’’)1 2 4 5

fußgesteuerte Schleife:

i = 0while i < 5:

print(i)i += 1

i = 0while True:

print(i)i += 1if i >= 5:

break

Page 64: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen steuern: continue, break

Iterationsschritt überspringen:>>> i = 0>>> while i < 5:... i += 1... if i == 3:... continue... print(i, end=’’)1 2 4 5

fußgesteuerte Schleife:

i = 0while i < 5:

print(i)i += 1

i = 0while True:

print(i)i += 1if i >= 5:

break

Page 65: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen steuern: break und else

>>> n = 15>>> for i in range(2, n):... if n/i == n//i:... print(’Teiler:’, i)... break... else:... print(’Primzahl’)Teiler: 3

>>> n = 17>>> for i in range(2, n):...Primzahl

Page 66: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Aufgabe:Zeilen einer Datei lesennichtleere Zeilen zählen und ausgebenam Ende Anzahl der nichtleeren Zeilen ausgebenbei zu langer Zeile abbrechen, Fehler ausgeben

Datei lesen: open(), iterierbar wie range()for line in open(’foo.txt’):

print(line)

leere Zeile testen:if line == ’\n’:

Länge einer Zeichenkette bestimmen: len()print(x, y, z) druckt mehrere Dinge nacheinandercontinue, break, else

Page 67: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Aufgabe:Zeilen einer Datei lesennichtleere Zeilen zählen und ausgebenam Ende Anzahl der nichtleeren Zeilen ausgebenbei zu langer Zeile abbrechen, Fehler ausgeben

Datei lesen: open(), iterierbar wie range()for line in open(’foo.txt’):

print(line)

leere Zeile testen:if line == ’\n’:

Länge einer Zeichenkette bestimmen: len()print(x, y, z) druckt mehrere Dinge nacheinandercontinue, break, else

Page 68: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Aufgabe:Zeilen einer Datei lesennichtleere Zeilen zählen und ausgebenam Ende Anzahl der nichtleeren Zeilen ausgebenbei zu langer Zeile abbrechen, Fehler ausgeben

Datei lesen: open(), iterierbar wie range()for line in open(’foo.txt’):

print(line)

leere Zeile testen:if line == ’\n’:

Länge einer Zeichenkette bestimmen: len()print(x, y, z) druckt mehrere Dinge nacheinandercontinue, break, else

Page 69: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Aufgabe:Zeilen einer Datei lesennichtleere Zeilen zählen und ausgebenam Ende Anzahl der nichtleeren Zeilen ausgebenbei zu langer Zeile abbrechen, Fehler ausgeben

Datei lesen: open(), iterierbar wie range()for line in open(’foo.txt’):

print(line)

leere Zeile testen:if line == ’\n’:

Länge einer Zeichenkette bestimmen: len()print(x, y, z) druckt mehrere Dinge nacheinandercontinue, break, else

Page 70: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Aufgabe:Zeilen einer Datei lesennichtleere Zeilen zählen und ausgebenam Ende Anzahl der nichtleeren Zeilen ausgebenbei zu langer Zeile abbrechen, Fehler ausgeben

Datei lesen: open(), iterierbar wie range()for line in open(’foo.txt’):

print(line)

leere Zeile testen:if line == ’\n’:

Länge einer Zeichenkette bestimmen: len()print(x, y, z) druckt mehrere Dinge nacheinandercontinue, break, else

Page 71: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Aufgabe:Zeilen einer Datei lesennichtleere Zeilen zählen und ausgebenam Ende Anzahl der nichtleeren Zeilen ausgebenbei zu langer Zeile abbrechen, Fehler ausgeben

Datei lesen: open(), iterierbar wie range()for line in open(’foo.txt’):

print(line)

leere Zeile testen:if line == ’\n’:

Länge einer Zeichenkette bestimmen: len()print(x, y, z) druckt mehrere Dinge nacheinandercontinue, break, else

Page 72: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Aufgabe:Zeilen einer Datei lesennichtleere Zeilen zählen und ausgebenam Ende Anzahl der nichtleeren Zeilen ausgebenbei zu langer Zeile abbrechen, Fehler ausgeben

Datei lesen: open(), iterierbar wie range()for line in open(’foo.txt’):

print(line)

leere Zeile testen:if line == ’\n’:

Länge einer Zeichenkette bestimmen: len()print(x, y, z) druckt mehrere Dinge nacheinandercontinue, break, else

Page 73: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Aufgabe:Zeilen einer Datei lesennichtleere Zeilen zählen und ausgebenam Ende Anzahl der nichtleeren Zeilen ausgebenbei zu langer Zeile abbrechen, Fehler ausgeben

Datei lesen: open(), iterierbar wie range()for line in open(’foo.txt’):

print(line)

leere Zeile testen:if line == ’\n’:

Länge einer Zeichenkette bestimmen: len()print(x, y, z) druckt mehrere Dinge nacheinandercontinue, break, else

Page 74: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Aufgabe:Zeilen einer Datei lesennichtleere Zeilen zählen und ausgebenam Ende Anzahl der nichtleeren Zeilen ausgebenbei zu langer Zeile abbrechen, Fehler ausgeben

Datei lesen: open(), iterierbar wie range()for line in open(’foo.txt’):

print(line)

leere Zeile testen:if line == ’\n’:

Länge einer Zeichenkette bestimmen: len()print(x, y, z) druckt mehrere Dinge nacheinandercontinue, break, else

Page 75: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Schleifen steuern

Lösung:i = 0for line in open(’foo.txt’):

if line == ’\n’:continue

i += 1if len(line) > 80:

print(’Zeile zu lang’)break

print(line, end=’’)else:

print(’nichtleere Zeilen:’, i)

Page 76: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen und Bedingungen in Ausdrücken

Listenausdrücke>>> [2*x for x in range(5)][0, 2, 4, 6, 8]

Listenausdrücke mit Filter>>> [x/2 for x in range(5) if x % 2 == 0][0.0, 1.0, 2.0]

bedingte Ausdrücke>>> x = -1>>> (’positiv’ if x > 0 else

’negativ’ if x < 0 else ’null’)’negativ’

ausdrucksstärker, weniger mechanischkann verschachtelt werden, wird aber unübersichtlich

Page 77: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen und Bedingungen in Ausdrücken

Listenausdrücke>>> [2*x for x in range(5)][0, 2, 4, 6, 8]

Listenausdrücke mit Filter>>> [x/2 for x in range(5) if x % 2 == 0][0.0, 1.0, 2.0]

bedingte Ausdrücke>>> x = -1>>> (’positiv’ if x > 0 else

’negativ’ if x < 0 else ’null’)’negativ’

ausdrucksstärker, weniger mechanischkann verschachtelt werden, wird aber unübersichtlich

Page 78: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen und Bedingungen in Ausdrücken

Listenausdrücke>>> [2*x for x in range(5)][0, 2, 4, 6, 8]

Listenausdrücke mit Filter>>> [x/2 for x in range(5) if x % 2 == 0][0.0, 1.0, 2.0]

bedingte Ausdrücke>>> x = -1>>> (’positiv’ if x > 0 else

’negativ’ if x < 0 else ’null’)’negativ’

ausdrucksstärker, weniger mechanischkann verschachtelt werden, wird aber unübersichtlich

Page 79: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen und Bedingungen in Ausdrücken

Listenausdrücke>>> [2*x for x in range(5)][0, 2, 4, 6, 8]

Listenausdrücke mit Filter>>> [x/2 for x in range(5) if x % 2 == 0][0.0, 1.0, 2.0]

bedingte Ausdrücke>>> x = -1>>> (’positiv’ if x > 0 else

’negativ’ if x < 0 else ’null’)’negativ’

ausdrucksstärker, weniger mechanischkann verschachtelt werden, wird aber unübersichtlich

Page 80: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Schleifen und Bedingungen in Ausdrücken

Listenausdrücke>>> [2*x for x in range(5)][0, 2, 4, 6, 8]

Listenausdrücke mit Filter>>> [x/2 for x in range(5) if x % 2 == 0][0.0, 1.0, 2.0]

bedingte Ausdrücke>>> x = -1>>> (’positiv’ if x > 0 else

’negativ’ if x < 0 else ’null’)’negativ’

ausdrucksstärker, weniger mechanischkann verschachtelt werden, wird aber unübersichtlich

Page 81: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Algorithmen wiederverwendbar machen, AbstraktionFunktionen auf verschiedene Parameter anwenden,Ergebnis bekommenFunktionen definieren mit def:def algorithm(input1, input2,

option1=’foo’, option2=False):"""Apply the algorithm."""pass

Wert des Aufrufs zurückgeben mit returnimpliziter Rückgabewert None

Page 82: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Algorithmen wiederverwendbar machen, AbstraktionFunktionen auf verschiedene Parameter anwenden,Ergebnis bekommenFunktionen definieren mit def:def algorithm(input1, input2,

option1=’foo’, option2=False):"""Apply the algorithm."""pass

Wert des Aufrufs zurückgeben mit returnimpliziter Rückgabewert None

Page 83: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Algorithmen wiederverwendbar machen, AbstraktionFunktionen auf verschiedene Parameter anwenden,Ergebnis bekommenFunktionen definieren mit def:def algorithm(input1, input2,

option1=’foo’, option2=False):"""Apply the algorithm."""pass

Wert des Aufrufs zurückgeben mit returnimpliziter Rückgabewert None

Page 84: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Algorithmen wiederverwendbar machen, AbstraktionFunktionen auf verschiedene Parameter anwenden,Ergebnis bekommenFunktionen definieren mit def:def algorithm(input1, input2,

option1=’foo’, option2=False):"""Apply the algorithm."""pass

Wert des Aufrufs zurückgeben mit returnimpliziter Rückgabewert None

Page 85: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Algorithmen wiederverwendbar machen, AbstraktionFunktionen auf verschiedene Parameter anwenden,Ergebnis bekommenFunktionen definieren mit def:def algorithm(input1, input2,

option1=’foo’, option2=False):"""Apply the algorithm."""pass

Wert des Aufrufs zurückgeben mit returnimpliziter Rückgabewert None

Page 86: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Primzahlbestimmung: Suche nach Teiler ausgliederndef factor(n):

for i in range(2, n):if n/i == n//i:

factor = ibreak

else:factor = None

return factor

Abstraktion: Teiler als Zahl zurückgebenAlternative:def factor(n):

for i in range(2, n):if n/i == n//i:

return i

Page 87: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Primzahlbestimmung: Suche nach Teiler ausgliederndef factor(n):

for i in range(2, n):if n/i == n//i:

factor = ibreak

else:factor = None

return factor

Abstraktion: Teiler als Zahl zurückgebenAlternative:def factor(n):

for i in range(2, n):if n/i == n//i:

return i

Page 88: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Primzahlbestimmung: Suche nach Teiler ausgliederndef factor(n):

for i in range(2, n):if n/i == n//i:

factor = ibreak

else:factor = None

return factor

Abstraktion: Teiler als Zahl zurückgebenAlternative:def factor(n):

for i in range(2, n):if n/i == n//i:

return i

Page 89: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Textausgabe ausgliedern:def prime(n):

f = factor(n)if f is None:

print(’Primzahl’)else:

print(’Teiler:’, f)

Aufrufen:>>> prime(15)Teiler: 3>>> prime(17)Primzahl

Funktionen können Nebenwirkung haben

Page 90: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Textausgabe ausgliedern:def prime(n):

f = factor(n)if f is None:

print(’Primzahl’)else:

print(’Teiler:’, f)

Aufrufen:>>> prime(15)Teiler: 3>>> prime(17)Primzahl

Funktionen können Nebenwirkung haben

Page 91: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

Textausgabe ausgliedern:def prime(n):

f = factor(n)if f is None:

print(’Primzahl’)else:

print(’Teiler:’, f)

Aufrufen:>>> prime(15)Teiler: 3>>> prime(17)Primzahl

Funktionen können Nebenwirkung haben

Page 92: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Funktionen

zurück zum Beispielprogramm, Aufgabe:Algorithmus zum Zeilenzählen auf beliebige DateienanwendenGrenze für Zeilenlänge konfigurierbar machensinnvoller VorgabewertZeilenzahl soll weiterverarbeitet werden könnenFehlerbehandlung

Page 93: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Funktionen

zurück zum Beispielprogramm, Aufgabe:Algorithmus zum Zeilenzählen auf beliebige DateienanwendenGrenze für Zeilenlänge konfigurierbar machensinnvoller VorgabewertZeilenzahl soll weiterverarbeitet werden könnenFehlerbehandlung

Page 94: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Funktionen

zurück zum Beispielprogramm, Aufgabe:Algorithmus zum Zeilenzählen auf beliebige DateienanwendenGrenze für Zeilenlänge konfigurierbar machensinnvoller VorgabewertZeilenzahl soll weiterverarbeitet werden könnenFehlerbehandlung

Page 95: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Funktionen

zurück zum Beispielprogramm, Aufgabe:Algorithmus zum Zeilenzählen auf beliebige DateienanwendenGrenze für Zeilenlänge konfigurierbar machensinnvoller VorgabewertZeilenzahl soll weiterverarbeitet werden könnenFehlerbehandlung

Page 96: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Funktionen

zurück zum Beispielprogramm, Aufgabe:Algorithmus zum Zeilenzählen auf beliebige DateienanwendenGrenze für Zeilenlänge konfigurierbar machensinnvoller VorgabewertZeilenzahl soll weiterverarbeitet werden könnenFehlerbehandlung

Page 97: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Funktionen

Lösung:def count_lines(filename, max_len=80):

i = 0for line in open(filename):

if line == ’\n’:continue

i += 1if len(line) > max_len:

print(’Zeile zu lang’)break

print(line, end=’’)else:

return i

Wächter-Muster: kein else-Zweig für nichtleere Zeilen nötig

Page 98: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Funktionen

Lösung:def count_lines(filename, max_len=80):

i = 0for line in open(filename):

if line == ’\n’:continue

i += 1if len(line) > max_len:

print(’Zeile zu lang’)break

print(line, end=’’)else:

return i

Wächter-Muster: kein else-Zweig für nichtleere Zeilen nötig

Page 99: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Funktionen

Alternative Lösung:def count_lines(filename, max_len=80):

i = 0for line in open(filename):

line = line.strip(’\r\n’)if line == ’’:

continue

i += 1if len(line) > max_len:

print(’Zeile zu lang’)break

print(line)else:

return iString-Methode strip(), entfernt alle angegebenen Zeichenvom Rand

Page 100: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Übung: Funktionen

Alternative Lösung:def count_lines(filename, max_len=80):

i = 0for line in open(filename):

line = line.strip(’\r\n’)if line == ’’:

continue

i += 1if len(line) > max_len:

print(’Zeile zu lang’)break

print(line)else:

return iString-Methode strip(), entfernt alle angegebenen Zeichenvom Rand

Page 101: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

ohne Fehler:>>> x = count_lines(’zeilen.txt’)einseins zweieins zwei drei>>> x3

Fehler provozieren:>>> x = count_lines(’zeilen.txt’, max_len=10)einseins zweiZeile zu lang>>> x>>> print(x)None

Page 102: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Funktionen

ohne Fehler:>>> x = count_lines(’zeilen.txt’)einseins zweieins zwei drei>>> x3

Fehler provozieren:>>> x = count_lines(’zeilen.txt’, max_len=10)einseins zweiZeile zu lang>>> x>>> print(x)None

Page 103: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Alternative: Fehlermeldung mit Exception

Fehler im Programm erzeugendef count_lines(filename, max_len=80):

i = 0for line in open(filename):

if line == ’\n’:continue

i += 1if len(line) > max_len:

raise ValueError(’Zeile zu lang’)

print(line, end=’’)

return i

Page 104: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Alternative: Fehlermeldung mit Exception

Interpreter stellt Fehler fest und gibt ihn aus>>> x = count_lines(’zeilen.txt’, max_len=10)einseins zweiTraceback (most recent call last):File "<pyshell#160>", line 1, in <module>x = count_lines(’zeilen.txt’, max_len=10)

File ".../foo.py", line 9, in count_linesraise ValueError(’Zeile zu lang’)

ValueError: Zeile zu lang

Fehlermeldung bezieht sich jetzt auf gespeicherte DateiAusführung wird nach dem Fehler abgebrochen

Page 105: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Alternative: Fehlermeldung mit Exception

Interpreter stellt Fehler fest und gibt ihn aus>>> x = count_lines(’zeilen.txt’, max_len=10)einseins zweiTraceback (most recent call last):File "<pyshell#160>", line 1, in <module>x = count_lines(’zeilen.txt’, max_len=10)

File ".../foo.py", line 9, in count_linesraise ValueError(’Zeile zu lang’)

ValueError: Zeile zu lang

Fehlermeldung bezieht sich jetzt auf gespeicherte DateiAusführung wird nach dem Fehler abgebrochen

Page 106: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Alternative: Fehlermeldung mit Exception

Interpreter stellt Fehler fest und gibt ihn aus>>> x = count_lines(’zeilen.txt’, max_len=10)einseins zweiTraceback (most recent call last):File "<pyshell#160>", line 1, in <module>x = count_lines(’zeilen.txt’, max_len=10)

File ".../foo.py", line 9, in count_linesraise ValueError(’Zeile zu lang’)

ValueError: Zeile zu lang

Fehlermeldung bezieht sich jetzt auf gespeicherte DateiAusführung wird nach dem Fehler abgebrochen

Page 107: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 108: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 109: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 110: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 111: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 112: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 113: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 114: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 115: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 116: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Aufgabe:ganze Zahl aus erster Zeile einer Datei lesenden Kehrwert bilden, Division durch 0 abfangenbei Erfolg den Kehrwert ausgebenin jedem Fall Datei schließen

open() liefert ein DateiobjektMethoden readline() und close()Zeichenkette mit int() in ganze Zahl umwandelnDivision durch 0 wirft ZeroDivisionErrortry, except, else, finally

Page 117: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Lösung:f = open(’foo.txt’)try:

line = f.readline()number = int(line)reciprocal = 1/number

except ZeroDivisionError:print(’Division durch 0’)

else:print(reciprocal)

finally:f.close()print(’Datei geschlossen’)

print(’erfolgreich beendet’)

Page 118: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Erfolg: else-Zweig, Programm läuft weitererwarteter Fehler: except-Zweig, Programm läuft weiterunerwarteter Fehler: try-Block bricht am Fehler ab,Programm kann nicht weitergeführt werdenfinally-Block wird immer ausgeführt, auch bei Abbruch

Page 119: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Erfolg: else-Zweig, Programm läuft weitererwarteter Fehler: except-Zweig, Programm läuft weiterunerwarteter Fehler: try-Block bricht am Fehler ab,Programm kann nicht weitergeführt werdenfinally-Block wird immer ausgeführt, auch bei Abbruch

Page 120: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Erfolg: else-Zweig, Programm läuft weitererwarteter Fehler: except-Zweig, Programm läuft weiterunerwarteter Fehler: try-Block bricht am Fehler ab,Programm kann nicht weitergeführt werdenfinally-Block wird immer ausgeführt, auch bei Abbruch

Page 121: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Fehler behandeln

Erfolg: else-Zweig, Programm läuft weitererwarteter Fehler: except-Zweig, Programm läuft weiterunerwarteter Fehler: try-Block bricht am Fehler ab,Programm kann nicht weitergeführt werdenfinally-Block wird immer ausgeführt, auch bei Abbruch

Page 122: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 123: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 124: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zahlen

ganze Zahlen gesehen: int, strrationale Zahlen>>> float(’2.7e10’)27000000000.0

viele mathematische Funktionen in der Standardbibliothek>>> import math>>> math.sqrt(4)2.0

Vergleiche, Verkettung>>> 0 == 0 < 4 != 3 > 2True

numerische Fehler vermeiden: Festkommazahlen, Brüche>>> from fractions import Fraction>>> Fraction(2, 6)Fraction(1, 3)

Page 125: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zahlen

ganze Zahlen gesehen: int, strrationale Zahlen>>> float(’2.7e10’)27000000000.0

viele mathematische Funktionen in der Standardbibliothek>>> import math>>> math.sqrt(4)2.0

Vergleiche, Verkettung>>> 0 == 0 < 4 != 3 > 2True

numerische Fehler vermeiden: Festkommazahlen, Brüche>>> from fractions import Fraction>>> Fraction(2, 6)Fraction(1, 3)

Page 126: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zahlen

ganze Zahlen gesehen: int, strrationale Zahlen>>> float(’2.7e10’)27000000000.0

viele mathematische Funktionen in der Standardbibliothek>>> import math>>> math.sqrt(4)2.0

Vergleiche, Verkettung>>> 0 == 0 < 4 != 3 > 2True

numerische Fehler vermeiden: Festkommazahlen, Brüche>>> from fractions import Fraction>>> Fraction(2, 6)Fraction(1, 3)

Page 127: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zahlen

ganze Zahlen gesehen: int, strrationale Zahlen>>> float(’2.7e10’)27000000000.0

viele mathematische Funktionen in der Standardbibliothek>>> import math>>> math.sqrt(4)2.0

Vergleiche, Verkettung>>> 0 == 0 < 4 != 3 > 2True

numerische Fehler vermeiden: Festkommazahlen, Brüche>>> from fractions import Fraction>>> Fraction(2, 6)Fraction(1, 3)

Page 128: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zahlen

ganze Zahlen gesehen: int, strrationale Zahlen>>> float(’2.7e10’)27000000000.0

viele mathematische Funktionen in der Standardbibliothek>>> import math>>> math.sqrt(4)2.0

Vergleiche, Verkettung>>> 0 == 0 < 4 != 3 > 2True

numerische Fehler vermeiden: Festkommazahlen, Brüche>>> from fractions import Fraction>>> Fraction(2, 6)Fraction(1, 3)

Page 129: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zahlen

komplexe Zahlen eingebaut>>> 1j*1j(-1+0j)

komplexe mathematische Funktionen getrennt verfügbar>>> math.sqrt(-1)Traceback (most recent call last):...

ValueError: math domain error

>>> import cmath>>> cmath.sqrt(-1)1j

Page 130: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zahlen

komplexe Zahlen eingebaut>>> 1j*1j(-1+0j)

komplexe mathematische Funktionen getrennt verfügbar>>> math.sqrt(-1)Traceback (most recent call last):...

ValueError: math domain error

>>> import cmath>>> cmath.sqrt(-1)1j

Page 131: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Wahrheitswerte

Literale gesehen: True, Falselogische Verknüpfungen: and, or, not>>> True and not FalseTrue

alle Objekte haben einen Wahrheitswert>>> bool(1)True>>> bool(’’)False>>> bool(’PyCon DE 2012’)True>>> bool(print)True>>> bool(None)False

0 oder „leer“ bedeutet False, sonst True

Page 132: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Wahrheitswerte

Literale gesehen: True, Falselogische Verknüpfungen: and, or, not>>> True and not FalseTrue

alle Objekte haben einen Wahrheitswert>>> bool(1)True>>> bool(’’)False>>> bool(’PyCon DE 2012’)True>>> bool(print)True>>> bool(None)False

0 oder „leer“ bedeutet False, sonst True

Page 133: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Wahrheitswerte

Literale gesehen: True, Falselogische Verknüpfungen: and, or, not>>> True and not FalseTrue

alle Objekte haben einen Wahrheitswert>>> bool(1)True>>> bool(’’)False>>> bool(’PyCon DE 2012’)True>>> bool(print)True>>> bool(None)False

0 oder „leer“ bedeutet False, sonst True

Page 134: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Wahrheitswerte

Literale gesehen: True, Falselogische Verknüpfungen: and, or, not>>> True and not FalseTrue

alle Objekte haben einen Wahrheitswert>>> bool(1)True>>> bool(’’)False>>> bool(’PyCon DE 2012’)True>>> bool(print)True>>> bool(None)False

0 oder „leer“ bedeutet False, sonst True

Page 135: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 136: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Operationen

Verkettung mit +>>> ’PyCon DE’ + ’ ’ + ’2001’’PyCon DE 2001’>>> ’PyCon DE’ + ’ ’ + str(2012)’PyCon DE 2012’

meist lesbarer: Formatierung>>> ’{} {}’.format(’PyCon DE’, 2012)’PyCon DE 2012’

Verkettung mit Verbindungstext>>> ’ ’.join([’PyCon’, ’DE’, ’2012’])’PyCon DE 2012’

Page 137: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Operationen

Verkettung mit +>>> ’PyCon DE’ + ’ ’ + ’2001’’PyCon DE 2001’>>> ’PyCon DE’ + ’ ’ + str(2012)’PyCon DE 2012’

meist lesbarer: Formatierung>>> ’{} {}’.format(’PyCon DE’, 2012)’PyCon DE 2012’

Verkettung mit Verbindungstext>>> ’ ’.join([’PyCon’, ’DE’, ’2012’])’PyCon DE 2012’

Page 138: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Operationen

Verkettung mit +>>> ’PyCon DE’ + ’ ’ + ’2001’’PyCon DE 2001’>>> ’PyCon DE’ + ’ ’ + str(2012)’PyCon DE 2012’

meist lesbarer: Formatierung>>> ’{} {}’.format(’PyCon DE’, 2012)’PyCon DE 2012’

Verkettung mit Verbindungstext>>> ’ ’.join([’PyCon’, ’DE’, ’2012’])’PyCon DE 2012’

Page 139: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Operationen

Länge bestimmen mit len()>>> len(’PyCon DE 2012’)13

Vervielfältigung mit *>>> x = ’PyCon DE 2012’>>> y = len(x) * ’=’>>> print(’\n’.join([x, y]))PyCon DE 2012=============

testen, ob eine Zeichenkette enthalten ist>>> ’DE’ in ’PyCon DE 2012’True

Page 140: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Operationen

Länge bestimmen mit len()>>> len(’PyCon DE 2012’)13

Vervielfältigung mit *>>> x = ’PyCon DE 2012’>>> y = len(x) * ’=’>>> print(’\n’.join([x, y]))PyCon DE 2012=============

testen, ob eine Zeichenkette enthalten ist>>> ’DE’ in ’PyCon DE 2012’True

Page 141: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Operationen

Länge bestimmen mit len()>>> len(’PyCon DE 2012’)13

Vervielfältigung mit *>>> x = ’PyCon DE 2012’>>> y = len(x) * ’=’>>> print(’\n’.join([x, y]))PyCon DE 2012=============

testen, ob eine Zeichenkette enthalten ist>>> ’DE’ in ’PyCon DE 2012’True

Page 142: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Methoden

zerlegen:>>> ’PyCon DE 2012’.split()[’PyCon’, ’DE’, ’2012’]>>> ’PyCon-DE-2012’.split(’-’)[’PyCon’, ’DE’, ’2012’]

Teile suchen und zählen>>> ’PyCon DE 2012’.index(’DE’)6>>> ’PyCon DE 2012’.count(’1’)2

Abfragen: isnumeric(), istitle(), startswith()>>> ’17’.isnumeric()True>>> ’PyCon DE 2012’.startswith(’Py’)True

Page 143: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Methoden

zerlegen:>>> ’PyCon DE 2012’.split()[’PyCon’, ’DE’, ’2012’]>>> ’PyCon-DE-2012’.split(’-’)[’PyCon’, ’DE’, ’2012’]

Teile suchen und zählen>>> ’PyCon DE 2012’.index(’DE’)6>>> ’PyCon DE 2012’.count(’1’)2

Abfragen: isnumeric(), istitle(), startswith()>>> ’17’.isnumeric()True>>> ’PyCon DE 2012’.startswith(’Py’)True

Page 144: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Methoden

zerlegen:>>> ’PyCon DE 2012’.split()[’PyCon’, ’DE’, ’2012’]>>> ’PyCon-DE-2012’.split(’-’)[’PyCon’, ’DE’, ’2012’]

Teile suchen und zählen>>> ’PyCon DE 2012’.index(’DE’)6>>> ’PyCon DE 2012’.count(’1’)2

Abfragen: isnumeric(), istitle(), startswith()>>> ’17’.isnumeric()True>>> ’PyCon DE 2012’.startswith(’Py’)True

Page 145: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Methoden

Manipulationen von Leerraum und Großschreibung,Ersetzungen>>> ’ PyCon DE 2012 ’.strip()’PyCon DE 2012’>>> ’ pycon de 2012 ’.title()’ Pycon De 2012 ’>>> ’ PyCon DE 2012 ’.replace(’11’, ’12’)’ PyCon DE 2012 ’

Zeichenketten unveränderbar, Manipulationen arbeiten mitKopien>>> x = ’ PyCon DE 2012 ’>>> x.strip()’PyCon DE 2012’>>> x’ PyCon DE 2012 ’

Page 146: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zeichenketten-Methoden

Manipulationen von Leerraum und Großschreibung,Ersetzungen>>> ’ PyCon DE 2012 ’.strip()’PyCon DE 2012’>>> ’ pycon de 2012 ’.title()’ Pycon De 2012 ’>>> ’ PyCon DE 2012 ’.replace(’11’, ’12’)’ PyCon DE 2012 ’

Zeichenketten unveränderbar, Manipulationen arbeiten mitKopien>>> x = ’ PyCon DE 2012 ’>>> x.strip()’PyCon DE 2012’>>> x’ PyCon DE 2012 ’

Page 147: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Auf Teile von Zeichenketten zugreifen

einzelne Zeichen per Index ansprechen>>> ’PyCon DE 2012’[2]’C’>>> ’PyCon DE 2012’[20]Traceback (most recent call last):...

IndexError: string index out of range

Indizieren von hinten>>> ’PyCon DE 2012’[-4]’2’

Ausschnitte ansprechen (Slicing)>>> ’PyCon DE 2012’[0:5]’PyCon’>>> ’PyCon DE 2012’[-4:]’2012’

Intervalle wieder halboffen, End-Index liegt dahinter

Page 148: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Auf Teile von Zeichenketten zugreifen

einzelne Zeichen per Index ansprechen>>> ’PyCon DE 2012’[2]’C’>>> ’PyCon DE 2012’[20]Traceback (most recent call last):...

IndexError: string index out of range

Indizieren von hinten>>> ’PyCon DE 2012’[-4]’2’

Ausschnitte ansprechen (Slicing)>>> ’PyCon DE 2012’[0:5]’PyCon’>>> ’PyCon DE 2012’[-4:]’2012’

Intervalle wieder halboffen, End-Index liegt dahinter

Page 149: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Auf Teile von Zeichenketten zugreifen

einzelne Zeichen per Index ansprechen>>> ’PyCon DE 2012’[2]’C’>>> ’PyCon DE 2012’[20]Traceback (most recent call last):...

IndexError: string index out of range

Indizieren von hinten>>> ’PyCon DE 2012’[-4]’2’

Ausschnitte ansprechen (Slicing)>>> ’PyCon DE 2012’[0:5]’PyCon’>>> ’PyCon DE 2012’[-4:]’2012’

Intervalle wieder halboffen, End-Index liegt dahinter

Page 150: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Auf Teile von Zeichenketten zugreifen

einzelne Zeichen per Index ansprechen>>> ’PyCon DE 2012’[2]’C’>>> ’PyCon DE 2012’[20]Traceback (most recent call last):...

IndexError: string index out of range

Indizieren von hinten>>> ’PyCon DE 2012’[-4]’2’

Ausschnitte ansprechen (Slicing)>>> ’PyCon DE 2012’[0:5]’PyCon’>>> ’PyCon DE 2012’[-4:]’2012’

Intervalle wieder halboffen, End-Index liegt dahinter

Page 151: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Listen

Literal benutzt [], unterschiedliche Elementtypen erlaubt>>> [1, ’abc’, [1, 2, 3]][1, ’abc’, [1, 2, 3]]

mit list() aus iterierbarer Sammlung erzeugen>>> list(range(2, 6))[2, 3, 4, 5]

Folgenoperationen analog zu Zeichenketten: len(),Elementzugriff und Slicing>>> [’a’, ’b’, ’c’][1:][’b’, ’c’]

ähnlich wie bei Zeichenketten, aber auf einzelne Elementebezogen: in, Methoden wie index() und count()>>> [’a’, ’b’] in [’a’, ’b’, ’c’]False>>> [’a’, ’b’, ’c’].index(’b’)1

Page 152: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Listen

Literal benutzt [], unterschiedliche Elementtypen erlaubt>>> [1, ’abc’, [1, 2, 3]][1, ’abc’, [1, 2, 3]]

mit list() aus iterierbarer Sammlung erzeugen>>> list(range(2, 6))[2, 3, 4, 5]

Folgenoperationen analog zu Zeichenketten: len(),Elementzugriff und Slicing>>> [’a’, ’b’, ’c’][1:][’b’, ’c’]

ähnlich wie bei Zeichenketten, aber auf einzelne Elementebezogen: in, Methoden wie index() und count()>>> [’a’, ’b’] in [’a’, ’b’, ’c’]False>>> [’a’, ’b’, ’c’].index(’b’)1

Page 153: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Listen

Literal benutzt [], unterschiedliche Elementtypen erlaubt>>> [1, ’abc’, [1, 2, 3]][1, ’abc’, [1, 2, 3]]

mit list() aus iterierbarer Sammlung erzeugen>>> list(range(2, 6))[2, 3, 4, 5]

Folgenoperationen analog zu Zeichenketten: len(),Elementzugriff und Slicing>>> [’a’, ’b’, ’c’][1:][’b’, ’c’]

ähnlich wie bei Zeichenketten, aber auf einzelne Elementebezogen: in, Methoden wie index() und count()>>> [’a’, ’b’] in [’a’, ’b’, ’c’]False>>> [’a’, ’b’, ’c’].index(’b’)1

Page 154: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Listen

Literal benutzt [], unterschiedliche Elementtypen erlaubt>>> [1, ’abc’, [1, 2, 3]][1, ’abc’, [1, 2, 3]]

mit list() aus iterierbarer Sammlung erzeugen>>> list(range(2, 6))[2, 3, 4, 5]

Folgenoperationen analog zu Zeichenketten: len(),Elementzugriff und Slicing>>> [’a’, ’b’, ’c’][1:][’b’, ’c’]

ähnlich wie bei Zeichenketten, aber auf einzelne Elementebezogen: in, Methoden wie index() und count()>>> [’a’, ’b’] in [’a’, ’b’, ’c’]False>>> [’a’, ’b’, ’c’].index(’b’)1

Page 155: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Listen

Listen sind veränderbar: append(), extend(), insert()>>> x = [’a’, ’b’, ’c’]>>> x.append(’d’)>>> x[’a’, ’b’, ’c’, ’d’]

del, remove(), pop()>>> del x[1:3]>>> x[’a’, ’d’]

sort(), reverse(), sorted(), reversed()>>> x = [’b’, ’d’, ’c’, ’a’]>>> x.sort()>>> x[’a’, ’b’, ’c’, ’d’]>>> sorted([’b’, ’d’, ’c’, ’a’])[’a’, ’b’, ’c’, ’d’]

Page 156: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Listen

Listen sind veränderbar: append(), extend(), insert()>>> x = [’a’, ’b’, ’c’]>>> x.append(’d’)>>> x[’a’, ’b’, ’c’, ’d’]

del, remove(), pop()>>> del x[1:3]>>> x[’a’, ’d’]

sort(), reverse(), sorted(), reversed()>>> x = [’b’, ’d’, ’c’, ’a’]>>> x.sort()>>> x[’a’, ’b’, ’c’, ’d’]>>> sorted([’b’, ’d’, ’c’, ’a’])[’a’, ’b’, ’c’, ’d’]

Page 157: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Listen

Listen sind veränderbar: append(), extend(), insert()>>> x = [’a’, ’b’, ’c’]>>> x.append(’d’)>>> x[’a’, ’b’, ’c’, ’d’]

del, remove(), pop()>>> del x[1:3]>>> x[’a’, ’d’]

sort(), reverse(), sorted(), reversed()>>> x = [’b’, ’d’, ’c’, ’a’]>>> x.sort()>>> x[’a’, ’b’, ’c’, ’d’]>>> sorted([’b’, ’d’, ’c’, ’a’])[’a’, ’b’, ’c’, ’d’]

Page 158: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Tupel

Literal benutzt ()>>> (1, 2, (’a’, ’b’))(1, 2, (’a’, ’b’))

unveränderlich, insbesondere feste Länge, daher oft fürGruppen einer bekannten Menge von Werten verwendetauspacken: Mehrfachzuweisung, Klammern unnötig>>> x, y = 1, 2>>> x, y = y, x>>> x, y(2, 1)>>> for x, y in [(1, 2), (3, 4)]:

print(x*y, end=’ ’)2 12

mehrere Werte aus Funktion zurückgeben>>> return x, y, z

Page 159: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Tupel

Literal benutzt ()>>> (1, 2, (’a’, ’b’))(1, 2, (’a’, ’b’))

unveränderlich, insbesondere feste Länge, daher oft fürGruppen einer bekannten Menge von Werten verwendetauspacken: Mehrfachzuweisung, Klammern unnötig>>> x, y = 1, 2>>> x, y = y, x>>> x, y(2, 1)>>> for x, y in [(1, 2), (3, 4)]:

print(x*y, end=’ ’)2 12

mehrere Werte aus Funktion zurückgeben>>> return x, y, z

Page 160: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Tupel

Literal benutzt ()>>> (1, 2, (’a’, ’b’))(1, 2, (’a’, ’b’))

unveränderlich, insbesondere feste Länge, daher oft fürGruppen einer bekannten Menge von Werten verwendetauspacken: Mehrfachzuweisung, Klammern unnötig>>> x, y = 1, 2>>> x, y = y, x>>> x, y(2, 1)>>> for x, y in [(1, 2), (3, 4)]:

print(x*y, end=’ ’)2 12

mehrere Werte aus Funktion zurückgeben>>> return x, y, z

Page 161: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Tupel

Literal benutzt ()>>> (1, 2, (’a’, ’b’))(1, 2, (’a’, ’b’))

unveränderlich, insbesondere feste Länge, daher oft fürGruppen einer bekannten Menge von Werten verwendetauspacken: Mehrfachzuweisung, Klammern unnötig>>> x, y = 1, 2>>> x, y = y, x>>> x, y(2, 1)>>> for x, y in [(1, 2), (3, 4)]:

print(x*y, end=’ ’)2 12

mehrere Werte aus Funktion zurückgeben>>> return x, y, z

Page 162: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 163: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zuordnungen: Dictionarys

Literal benutzt {}>>> {’name’: ’PyCon DE’, ’year’: 2012}{’name’: ’PyCon DE’, ’year’: 2012}

Konstruktor: dict(), nimmt Schlüsselwort-Argumente>>> dict(name=’PyCon DE’, year=2012){’name’: ’PyCon DE’, ’year’: 2012}

Dictionary-Ausdrücke>>> {x: x+1 for x in range(3)}{0: 1, 1: 2, 2: 3}

kopieren mit copy(), leeren mit clear()>>> x = {’name’: ’PyCon DE’, ’year’: 2012}>>> y = x.copy()>>> x.clear()>>> x{}>>> y{’name’: ’PyCon DE’, ’year’: 2012}

Page 164: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zuordnungen: Dictionarys

Literal benutzt {}>>> {’name’: ’PyCon DE’, ’year’: 2012}{’name’: ’PyCon DE’, ’year’: 2012}

Konstruktor: dict(), nimmt Schlüsselwort-Argumente>>> dict(name=’PyCon DE’, year=2012){’name’: ’PyCon DE’, ’year’: 2012}

Dictionary-Ausdrücke>>> {x: x+1 for x in range(3)}{0: 1, 1: 2, 2: 3}

kopieren mit copy(), leeren mit clear()>>> x = {’name’: ’PyCon DE’, ’year’: 2012}>>> y = x.copy()>>> x.clear()>>> x{}>>> y{’name’: ’PyCon DE’, ’year’: 2012}

Page 165: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zuordnungen: Dictionarys

Literal benutzt {}>>> {’name’: ’PyCon DE’, ’year’: 2012}{’name’: ’PyCon DE’, ’year’: 2012}

Konstruktor: dict(), nimmt Schlüsselwort-Argumente>>> dict(name=’PyCon DE’, year=2012){’name’: ’PyCon DE’, ’year’: 2012}

Dictionary-Ausdrücke>>> {x: x+1 for x in range(3)}{0: 1, 1: 2, 2: 3}

kopieren mit copy(), leeren mit clear()>>> x = {’name’: ’PyCon DE’, ’year’: 2012}>>> y = x.copy()>>> x.clear()>>> x{}>>> y{’name’: ’PyCon DE’, ’year’: 2012}

Page 166: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zuordnungen: Dictionarys

Literal benutzt {}>>> {’name’: ’PyCon DE’, ’year’: 2012}{’name’: ’PyCon DE’, ’year’: 2012}

Konstruktor: dict(), nimmt Schlüsselwort-Argumente>>> dict(name=’PyCon DE’, year=2012){’name’: ’PyCon DE’, ’year’: 2012}

Dictionary-Ausdrücke>>> {x: x+1 for x in range(3)}{0: 1, 1: 2, 2: 3}

kopieren mit copy(), leeren mit clear()>>> x = {’name’: ’PyCon DE’, ’year’: 2012}>>> y = x.copy()>>> x.clear()>>> x{}>>> y{’name’: ’PyCon DE’, ’year’: 2012}

Page 167: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zuordnungen: Dictionarys

Elementzugriff>>> x = {’name’: ’PyCon DE’, ’year’: 2012}>>> x[’name’]’PyCon DE’>>> x[’year’] = 2012>>> x[’location’] = ’Leipzig’>>> x{’location’: ’Leipzig’, ’name’: ’PyCon DE’,’year’: 2012}

Dictionarys vereinigen mit update()>>> x.update({’year’: 2012,

’start’: ’2012-10-29’})>>> x{’start’: ’2012-10-29’, ’location’: ’Leipzig’,’name’: ’PyCon DE’, ’year’: 2012}

Page 168: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zuordnungen: Dictionarys

Elementzugriff>>> x = {’name’: ’PyCon DE’, ’year’: 2012}>>> x[’name’]’PyCon DE’>>> x[’year’] = 2012>>> x[’location’] = ’Leipzig’>>> x{’location’: ’Leipzig’, ’name’: ’PyCon DE’,’year’: 2012}

Dictionarys vereinigen mit update()>>> x.update({’year’: 2012,

’start’: ’2012-10-29’})>>> x{’start’: ’2012-10-29’, ’location’: ’Leipzig’,’name’: ’PyCon DE’, ’year’: 2012}

Page 169: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zuordnungen: Dictionarys

testen auf Vorhandensein eines Schlüssels: in>>> ’location’ in xTrue

löschen: del, pop(), popitem()>>> del x[’location’]>>> ’location’ in xFalse

>>> x.popitem()(’start’, ’2012-10-29’)>>> x{’name’: ’PyCon DE’, ’year’: 2012}

Page 170: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zuordnungen: Dictionarys

testen auf Vorhandensein eines Schlüssels: in>>> ’location’ in xTrue

löschen: del, pop(), popitem()>>> del x[’location’]>>> ’location’ in xFalse

>>> x.popitem()(’start’, ’2012-10-29’)>>> x{’name’: ’PyCon DE’, ’year’: 2012}

Page 171: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Zuordnungen: Dictionarys

iterieren über Schlüssel, Werte und Schlüssel-Wert-Paare>>> for key in x:

print(key, end=’ ’)start location name year

>>> for key, value in x.items():print(key, value)

start 2012-10-29location Leipzigname PyCon DEyear 2012

Page 172: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Mengen

Literal auch mit {}>>> {1, ’a’, (True, False)}{’a’, 1, (True, False)}

Sonderfall: leere Menge mit set()manipulieren: add(), pop(), remove(), discard(), update()Mengenoperationen mit Operatoren>>> {1, 2, 3} | {3, 4}{1, 2, 3, 4}>>> {1, 2, 3} & {3, 4}{3}>>> {1, 2, 3} - {3, 4}{1, 2}

Ordnung anhand von Teilmengenbeziehungen>>> {1, 2} < {1, 2, 3, 4}True>>> {1, 2} < {3, 4}False

Page 173: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Mengen

Literal auch mit {}>>> {1, ’a’, (True, False)}{’a’, 1, (True, False)}

Sonderfall: leere Menge mit set()manipulieren: add(), pop(), remove(), discard(), update()Mengenoperationen mit Operatoren>>> {1, 2, 3} | {3, 4}{1, 2, 3, 4}>>> {1, 2, 3} & {3, 4}{3}>>> {1, 2, 3} - {3, 4}{1, 2}

Ordnung anhand von Teilmengenbeziehungen>>> {1, 2} < {1, 2, 3, 4}True>>> {1, 2} < {3, 4}False

Page 174: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Mengen

Literal auch mit {}>>> {1, ’a’, (True, False)}{’a’, 1, (True, False)}

Sonderfall: leere Menge mit set()manipulieren: add(), pop(), remove(), discard(), update()Mengenoperationen mit Operatoren>>> {1, 2, 3} | {3, 4}{1, 2, 3, 4}>>> {1, 2, 3} & {3, 4}{3}>>> {1, 2, 3} - {3, 4}{1, 2}

Ordnung anhand von Teilmengenbeziehungen>>> {1, 2} < {1, 2, 3, 4}True>>> {1, 2} < {3, 4}False

Page 175: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Mengen

Literal auch mit {}>>> {1, ’a’, (True, False)}{’a’, 1, (True, False)}

Sonderfall: leere Menge mit set()manipulieren: add(), pop(), remove(), discard(), update()Mengenoperationen mit Operatoren>>> {1, 2, 3} | {3, 4}{1, 2, 3, 4}>>> {1, 2, 3} & {3, 4}{3}>>> {1, 2, 3} - {3, 4}{1, 2}

Ordnung anhand von Teilmengenbeziehungen>>> {1, 2} < {1, 2, 3, 4}True>>> {1, 2} < {3, 4}False

Page 176: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Mengen

Literal auch mit {}>>> {1, ’a’, (True, False)}{’a’, 1, (True, False)}

Sonderfall: leere Menge mit set()manipulieren: add(), pop(), remove(), discard(), update()Mengenoperationen mit Operatoren>>> {1, 2, 3} | {3, 4}{1, 2, 3, 4}>>> {1, 2, 3} & {3, 4}{3}>>> {1, 2, 3} - {3, 4}{1, 2}

Ordnung anhand von Teilmengenbeziehungen>>> {1, 2} < {1, 2, 3, 4}True>>> {1, 2} < {3, 4}False

Page 177: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 178: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Dateiartige Objekte

bereits gesehen: öffnen, iterierenread, readline, readlinesöffnen zum Schreiben und Anhängenseek, tell, writeclose

Page 179: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Dateiartige Objekte

bereits gesehen: öffnen, iterierenread, readline, readlinesöffnen zum Schreiben und Anhängenseek, tell, writeclose

Page 180: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Dateiartige Objekte

bereits gesehen: öffnen, iterierenread, readline, readlinesöffnen zum Schreiben und Anhängenseek, tell, writeclose

Page 181: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Dateiartige Objekte

bereits gesehen: öffnen, iterierenread, readline, readlinesöffnen zum Schreiben und Anhängenseek, tell, writeclose

Page 182: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Dateiartige Objekte

bereits gesehen: öffnen, iterierenread, readline, readlinesöffnen zum Schreiben und Anhängenseek, tell, writeclose

Page 183: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Ebenfalls Datentypen

Fehler (Exceptions): HierarchieFunktionen, Methoden: herumreichenKlassen: dir

Page 184: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Ebenfalls Datentypen

Fehler (Exceptions): HierarchieFunktionen, Methoden: herumreichenKlassen: dir

Page 185: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Ebenfalls Datentypen

Fehler (Exceptions): HierarchieFunktionen, Methoden: herumreichenKlassen: dir

Page 186: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Gliederung

1 Einleitung

2 Hallo WeltDie Entwicklungsumgebung idlePython-Programme

3 Grundzüge der Sprache PythonPython im VergleichGrundlegende Programmkonstrukte

4 DatentypenEinfache TypenSequenzen: Zeichenketten, Listen, TupelUngeordnete Sammlungen: Dictionarys, MengenWeitere

5 Klassen

Page 187: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Klassen

einfaches Beispiel:class Example(object):

"""A simple example."""

def __init__(self, value):self.value = value

def add(self, other_number):return self.value + other_number

def __str__(self):return ’Example instance {}’.format(self.value)

Methoden, self__init__()spezielle Methoden: __str__, __repr__, __len__,__contains__

Page 188: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Klassen

einfaches Beispiel:class Example(object):

"""A simple example."""

def __init__(self, value):self.value = value

def add(self, other_number):return self.value + other_number

def __str__(self):return ’Example instance {}’.format(self.value)

Methoden, self__init__()spezielle Methoden: __str__, __repr__, __len__,__contains__

Page 189: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Klassen

einfaches Beispiel:class Example(object):

"""A simple example."""

def __init__(self, value):self.value = value

def add(self, other_number):return self.value + other_number

def __str__(self):return ’Example instance {}’.format(self.value)

Methoden, self__init__()spezielle Methoden: __str__, __repr__, __len__,__contains__

Page 190: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Klassen

einfaches Beispiel:class Example(object):

"""A simple example."""

def __init__(self, value):self.value = value

def add(self, other_number):return self.value + other_number

def __str__(self):return ’Example instance {}’.format(self.value)

Methoden, self__init__()spezielle Methoden: __str__, __repr__, __len__,__contains__

Page 191: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Klassen: Duck-Typing

mit Zahl als Wert benutzen>>> e = Example(3)>>> str(e)’Example instance 3’>>> e.add(1)4

mit Liste als Wert benutzen>>> e = Example([1,2,3])>>> str(e)’Example instance [1, 2, 3]’>>> e.add([4, 5])[1, 2, 3, 4, 5]

Page 192: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Klassen: Duck-Typing

mit Zahl als Wert benutzen>>> e = Example(3)>>> str(e)’Example instance 3’>>> e.add(1)4

mit Liste als Wert benutzen>>> e = Example([1,2,3])>>> str(e)’Example instance [1, 2, 3]’>>> e.add([4, 5])[1, 2, 3, 4, 5]

Page 193: Python für Einsteiger - thomas-lotze.dethomas-lotze.de/software/praesentation/20121029-pyconde-python.pdf · Gliederung 1 Einleitung 2 Hallo Welt Die Entwicklungsumgebung idle Python-Programme

Klassen: Duck-Typing

inkompatible Werte>>> e.add(1)Traceback (most recent call last):File "<pyshell#10>", line 1, in <module>e.add(1)

File ".../foo.py", line 8, in addreturn self.value + other_number

TypeError: can only concatenate list(not "int") to list


Recommended