Grundkurs Python 3 - Grund-Wissen

嚜澶rundkurs Python 3

Release 0.1.2d

Aktualisiert am 02.12.2018

Bernhard Grotz



Dieses Buch wird unter der Creative Commons License (Version 3.0, by-nc-sa) ver?ffentlicht. Alle Inhalte d邦rfen daher in jedem beliebigen Format vervielf?ltigt und/oder weiterverarbeitet werden, sofern die Weitergabe nicht kommerziell ist, unter einer gleichen

Lizenz erfolgt, und das Original als Quelle genannt wird. Siehe auch:

Erl?uterung der Einschr?nkung by-nc-sa

Leitfaden zu Creative-Commons-Lizenzen

Unabh?ngig von dieser Lizenz ist die Nutzung dieses Buchs f邦r Unterricht und Forschung

(∫52a UrhG) sowie zum privaten Gebrauch (∫53 UrhG) ausdr邦cklich erlaubt.

Der Autor erhebt mit dem Buch weder den Anspruch auf Vollst?ndigkeit noch auf Fehlerfreiheit; insbesondere kann f邦r inhaltliche Fehler keine Haftung 邦bernommen werden.

Die Quelldateien dieses Buchs wurden unter Linux mittels Vim und Sphinx, die enthaltenen Graphiken mittels Inkscape erstellt. Der Quellcode sowie die Original-Graphiken

k?nnen 邦ber die Projektseite heruntergeladen werden:



Bei Fragen, Anmerkungen und Verbesserungsvorschl?gen bittet der Autor um eine kurze

Email an folgende Adresse:

info@grund-wissen.de

Augsburg, den 2. Dezember 2018.

Bernhard Grotz

Inhaltsverzeichnis

Installation

1

Installation von Python3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

Installation von Ipython3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

Virtuelle Umgebungen

2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Einf邦hrung

4

Interaktiver Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

Python-Skripte

5

Variablen

Operatoren

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

Datentypen

None

10

每 Der Nichts-Typ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Numerische Datentypen

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

str 每 Zeichenketten . . . . . . . .

list und tuple 每 Listen und Tupel

set und frozenset 每 Mengen . . .

dict 每 W?rterb邦cher . . . . . . . .

file 每 Dateien . . . . . . . . . . .

10

11

. . . . . . . . . . . . . . . . . . . . . . . . .

13

. . . . . . . . . . . . . . . . . . . . . . . . .

19

. . . . . . . . . . . . . . . . . . . . . . . . .

26

. . . . . . . . . . . . . . . . . . . . . . . . .

28

. . . . . . . . . . . . . . . . . . . . . . . . .

29

Kontrollstrukturen

if, elif und else 每 Fallunterscheidungen

while und for 每 Schleifen . . . . . . . . .

pass 每 Die Platzhalter-Anweisung . . . . .

31

. . . . . . . . . . . . . . . . . . . . .

31

. . . . . . . . . . . . . . . . . . . . .

32

. . . . . . . . . . . . . . . . . . . . .

34

Funktionen

35

Definition eigener Funktionen

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

Optionale Argumente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

Ver?nderliche und unver?nderliche Argumente . . . . . . . . . . . . . . . . . . .

37

Lambda-Ausdr邦cke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

Builtin-Funktionen

42

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Klassen und Objektorientierung

43

Definition und Initialisierung eigener Klassen . . . . . . . . . . . . . . . . . . . .

Allgemeine Eigenschaften von Klassen

43

. . . . . . . . . . . . . . . . . . . . . . .

45

Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

Dekoratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

Generatoren und Iteratoren

52

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

i

Module und Pakete

Module

54

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

Fehler und Ausnahmen

60

Arten von Programm-Fehlern

try, except

und

finally

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

每 Fehlerbehandlung . . . . . . . . . . . . . . . . . . .

61

Debugging, Logging und Testing

pdb 每 Der Python-Debugger . . . . .

logging 每 Arbeiten mit Logdateien .

doctest 每 Testen mittels Docstrings

unittest 每 Automatisiertes Testen .

64

. . . . . . . . . . . . . . . . . . . . . . . .

64

. . . . . . . . . . . . . . . . . . . . . . . .

66

. . . . . . . . . . . . . . . . . . . . . . . .

67

. . . . . . . . . . . . . . . . . . . . . . . .

68

Design Patterns

71

Erzeugungsmuster

Strukturmuster

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

Verhaltensmuster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

Scientific Python

78

Mathematik mit Standard-Modulen . . . . . . . . . . . . . . . . . . . . . . . . .

ipython 每 eine Python-Entwicklungsumgebung . . .

matplotlib 每 ein Plotter f邦r Diagramme . . . . . . .

numpy 每 eine Bibliothek f邦r numerische Berechnungen

pandas 每 eine Bibliothek f邦r tabellarische Daten . . .

sympy 每 ein Computer-Algebra-System . . . . . . . .

78

. . . . . . . . . . . . . . .

82

. . . . . . . . . . . . . . .

88

. . . . . . . . . . . . . . . 101

. . . . . . . . . . . . . . . 108

. . . . . . . . . . . . . . . 118

Beispielaufgaben f邦r Scipy, Sympy und Pandas . . . . . . . . . . . . . . . . . . . 122

Bottle 每 Ein Mikro-Framework f邦r interaktive Webseiten

140

Ein ?Hallo Welt※-Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

HTML-Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

Kivy - ein Toolkit f邦r GUI-Programme

142

Ein ?Hallo Welt※-Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

Anhang

145

Schl邦sselw?rter

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Standardfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Wichtige Standard-Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

ASCII-Codes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

Links

178

Stichwortverzeichnis

180

ii

Installation

Installation von Python3

Bei neuen Linux-Versionen ist Python in den Versionen 2.7 und 3.5 bereits vorinstalliert.

Auf ?lteren Systemen kann es hingegen notwendig sein, die aktuelle (und sehr empfehlenswerte) Version 3 von Python nachtr?glich zu installieren. Hierzu sollten folgende Pakete

mittels

apt

installiert werden:

sudo aptitude install python3 python3-doc python3-pip

Das zuletzt genannte Programm

nicht auch 邦ber

apt

pip3

erlaubt es, zus?tzliche Erweiterungen (sofern diese

installierbar sind) mittels folgender Syntax zu installieren:

sudo pip3 paketname

Dabei werden automatisch alle bekannten Python-Repositories durchsucht und die aktuelle Version installiert. Mit der Option

-U (?update※) wird eine eventuell bereits vorhandene,

nicht mehr aktuelle Version eines Pakets durch die neueste Version ersetzt. Beispielsweise

kann so mittels

pip3 -U Sphinx die neueste Version des Python-Dokumentationssystems

Sphinx installiert werden. Alternativ kann auch in den gew?hnlichen Linux-Paketquellen

mittels

apt

nach einem entsprechenden Python-Paket gesucht beziehungsweise dieses in-

stalliert werden.

Installation von Ipython3

Anstelle des ?normalen※ Python-Interpreters, der sich durch Aufruf von

weitere Argumente starten l?sst, sollte bevorzugt

ipython3

python3

ohne

verwendet werden. Neben

einer automatischen Vervollst?ndigung von Modul-, Klassen- und Funktionsnamen bei

Dr邦cken der

Tab-Taste bietet Ipython eine interaktive Syntax-Hilfe und weitere hilfreiche

Funktionen.

Folgende Pakete sollten f邦r Ipython3 installiert werden:

sudo aptitude install ipython3 ipython3-qtconsole ipython3-notebook python3-tk

Ipython kann als Shell-Version anschlie?end mittels

mittels

ipython3 qtconsole

gestartet werden.

1

ipython3,

die graphische Oberfl?che

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download