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.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.