Grundkurs Python 3 - Grund-Wissen
Grundkurs 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Datentypen
10
None ? Der Nichts-Typ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Numerische Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
str ? Zeichenketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 list und tuple ? Listen und Tupel . . . . . . . . . . . . . . . . . . . . . . . . . 19 set und frozenset ? Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 dict ? W?rterb?cher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 file ? Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Kontrollstrukturen
31
if, elif und else ? Fallunterscheidungen . . . . . . . . . . . . . . . . . . . . . 31
while und for ? Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
pass ? Die Platzhalter-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . 43
Allgemeine Eigenschaften von Klassen . . . . . . . . . . . . . . . . . . . . . . . 45
Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Dekoratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Generatoren und Iteratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
i
Module und Pakete
54
Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Fehler und Ausnahmen
60
Arten von Programm-Fehlern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
try, except und finally ? Fehlerbehandlung . . . . . . . . . . . . . . . . . . . 61
Debugging, Logging und Testing
64
pdb ? Der Python-Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
logging ? Arbeiten mit Logdateien . . . . . . . . . . . . . . . . . . . . . . . . . 66
doctest ? Testen mittels Docstrings . . . . . . . . . . . . . . . . . . . . . . . . 67
unittest ? Automatisiertes Testen . . . . . . . . . . . . . . . . . . . . . . . . . 68
Design Patterns
71
Erzeugungsmuster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Strukturmuster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Verhaltensmuster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Scientific Python
78
Mathematik mit Standard-Modulen . . . . . . . . . . . . . . . . . . . . . . . . . 78
ipython ? eine Python-Entwicklungsumgebung . . . . . . . . . . . . . . . . . . 82 matplotlib ? ein Plotter f?r Diagramme . . . . . . . . . . . . . . . . . . . . . . 88 numpy ? eine Bibliothek f?r numerische Berechnungen . . . . . . . . . . . . . . . 101 pandas ? eine Bibliothek f?r tabellarische Daten . . . . . . . . . . . . . . . . . . 108 sympy ? ein Computer-Algebra-System . . . . . . . . . . . . . . . . . . . . . . . 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
pip3 Das zuletzt genannte Programm
erlaubt es, zus?tzliche Erweiterungen (sofern diese
apt nicht auch ?ber
installierbar sind) mittels folgender Syntax zu installieren:
sudo pip3 paketname
Dabei werden automatisch alle bekannten Python-Repositories durchsucht und die aktuel-
-U le Version installiert. Mit der Option (,,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
apt mittels
nach einem entsprechenden Python-Paket gesucht beziehungsweise dieses in-
stalliert werden.
Installation von Ipython3
Anstelle des ,,normalen" Python-Interpreters, der sich durch Aufruf von python3 ohne weitere Argumente starten l?sst, sollte bevorzugt ipython3 verwendet werden. Neben
einer automatischen Vervollst?ndigung von Modul-, Klassen- und Funktionsnamen bei
Tab Dr?cken der
-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 ipython3, die graphische Oberfl?che mittels ipython3 qtconsole gestartet werden.
1
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.