Python
Python
5
License Creative Commons Attribution 4 Python 3 Cheat Sheet Latest English version on :
[Link]
integer, float, boolean, string, bytes Grund-Typen ◾ geordnete Folgen, schneller indizierter Zugriff, Werte wiederholbar Container Typen
int 783 0 -192 0b010 0o642 0xF3 list [1,5,9] ["x",11,8.9] ["mot"] []
null binär oktal hexadezimal tuple (1,5,9) 11,"y",7.4 ("mot",) ()
float 9.23 0.0 -1.7e-6
-6 Nicht veränderbare Werte (immutables) ☝ Ausdruck nur mit Kommas →tuple
bool True False ×10
""
str bytes (geordnete Folge von chars / bytes)
str "One\nTwo" Multiline string: b""
escaped new line """X\tY\tZ ◾ key Container, a priori ohne Ordnung, schneller key Zugriff, jeder key ist einmalig
'I\'m' 1\t2\t3""" dictionary dict {"key":"value"} dict(a=3,b=4,k="v") {}
escaped ' escaped tab (key/value Verknüpfungen){1:"one",3:"three",2:"two",3.14:"π"}
bytes b"toto\xfe\775" collection set {"key1","key2"} {1,9,3,0} set()
hexadezimal oktal ☝ unveränderbare ☝ keys=hashbare Werte (Grundtypen, unveränderbare…) frozenset unveränderbares set empty
True ☝ stelle den Editor so ein, dass er 4 elif... und nur einem finalen else benutzt
Wahr- und Falsch-Konstanten if age<=18:
False Leerzeichen anstelle eines Tabs macht. werden. Nur der Block mit der ersten state="Kid"
wahren Bedingung wird ausgeführt. elif age>65:
☝ Fließkommazahlen… ungefähre Werte Mathe
Winkel in Bogenmaß! ☝ mit einer Variablen x: state="Retired"
if bool(x)==True: ⇔ if x: else:
Operatoren: + - * / // % ** from math import sin,pi… state="Active"
× ÷ ab if bool(x)==False: ⇔ if not x:
Priorität (…) sin(pi/4)→0.707…
ganzzahlige ÷ ÷ Rest cos(2*pi/3)→-0.4999… Ausnahmen bei Fehlern
Einen Fehler signalisieren:
@ → Matrizen-× python3.5+numpy sqrt(81)→9.0 √ raise AusnKlasse(…) fehlerhafte
(1+5.3)*2→12.6 log(e**2)→2.0 Fehlerbehandlung : normale Ausführung
raise X() fehlerhafte
abs(-3.2)→3.2 ceil(12.5)→13 try: raise
round(3.57,1)→3.6 Ausführung Ausführung
floor(12.5)→12 Normaler Ausführungsblock
pow(4,3)→64.0 Module math, statistics, random, except AusnKlasse as e: ☝ finally startet den Block für die
☝ gewöhnliche Prioritäten decimal, fractions, numpy etc. (vgl. doc) Fehlerbehandlungsblock Endverarbeitung in allen Fällen.
☝ vermeide Endlosschleifen! Befehlsblock wird ausgeführt, Bedingte Schleifenanweisung Befehlsblock wird für jedes Iterative Schleifenanweisung
solange wie Bedingung wahr ist. Element eines Containers oder Iterators ausgeführt.
ja nächstes
while logische Bedingung: ? Schleifenkontrolle for var in Folge: …
nein Ende
Befehlsblock break direktes Verlassen Befehlsblock
Anzuzeigende Elemenge : Literalwerte, Variablen, Ausdrücke Schleife über die Indizes einer Folge :
print Optionen: ◽ Verändere Element beim Index.
◽ sep=" " Trennzeichen, Standard: Leerzeichen ◽ Greife auf benachbarte Elemente zu. (vor oder zurück)
lst = [11,18,9,12,23,4,17]
◽ end="\n" Ende der Anzeige, Standard: neue Zeile lost = []
◽ file=[Link] Ausgabe in Datei, Standard: standard out for idx in range(len(lst)): Algorithmus:
val = lst[idx] Begrenze Werte
s = input("Anweisungen:") Eingabe
if val > 15: größer als 15 auf 15,
☝ input liefert immer eine Zeichenkette zurück, konvertiere in den [Link](val) rette verlorene Werte
nötigen Datentyp! (vgl. Konvertierungen auf der anderen Seite). lst[idx] = 15
print("modif:",lst,"-lost:",lost)
len(c)→ Anzahl Elemente Generische Operationen auf Containern Schleife gleichzeitig über Indizes und Werte einer Folge:
min(c) max(c) sum(c) Note: For dictionaries and sets, these for idx,val in enumerate(lst):
sorted(c)→ list sortierte Kopie operations use keys.
val in c → boolesch, Zugehörigkeitsoperator in (Fehlen: not in) range([Start,] Ende [,Schrittweite]) Ganzzahlige Folgen
enumerate(c)→ Iterator über (Index, Wert) ☝ Start normal 0, Ende nicht in Folge enthalten, Schrittweite normal 1
zip(c1,c2…)→ Iterator über Tupel, die ci Elemente beim gleichen Index haben
range(5)→ 0 1 2 3 4 range(2,12,3)→ 2 5 8 11
all(c)→ True wenn alle c Elemente zu wahr ausgewertet werden, sonst False range(3,8)→ 3 4 5 6 7 range(20,5,-5)→ 20 15 10
any(c)→ True wenn mindestens ein Element von c als wahr ausgewertet wird, sonst False range(len(seq))→ Folge der Indizes der Werte in seq
Speziell für Container geordneter Folgen (Listen, Tupel, Zeichenketten, bytes…) ☝ range liefert eine unveränderbare Folge ganzer Zahlen, wie man sie braucht.
reversed(c)→ umgekehrter Iter. c*5→ vervielfachen c+c2→ zusammensetzen
[Link](val)→ Position [Link](val)→ Vorkommen zählen Name der Funktion (identifier) Definition von Funktionen
import copy benannte Parameter
[Link](c)→ flache Kopie des Containers def fct(x,y,z):
[Link](c)→ tiefe Kopie des Containers fct
"""Dokumentation"""
☝ verändert die Original-Liste ! Operationen auf Listen # Befehlsblock, Berechnung von res, etc.
[Link](val) füge Wert am Ende an return res Ergebnis des Funktionsaufrufs, wenn die
Funktion nichts zurückgibt: return None
[Link](seq) füge Folge von Elementen am Ende an ☝ Parameter und alle
[Link](idx,val) füge Element beim Index ein Variablen dieses Blocks existieren nur in diesem Block und während des
[Link](val) entferne erstes Element mit Wert val Funktionsaufrufs. (Denke an eine “black box”.)
[Link]([idx])→Wert entferne & liefere Element bei idx (Standard: Letztes) Fortgeschritten: def fct(x,y,z,*args,a=3,b=5,**kwargs):
[Link]() [Link]() sortiere / kehre Liste um vor Ort *args variable Anzahl von Argumenten (→tuple), Standardwerte,
**kwargs variable Anzahl benannter Argumente (→dict)
Operationen auf Dictionaries Operationen auf Mengen
[Link]() Operatoren: r = fct(3,i+2,2*i) Funktionsaufruf
d[key]=Wert Speicher des ein Argument pro
d[key]→ Wert del d[key] | → Vereinigung (vertikaler Balken) Rückgabewerts Parameter
ändere/ergänze & → Schnittmenge
[Link](d2) - ^ → Mengen-Differenz ☝ Das ist die Benutzung Fortgeschritten: fct() fct
[Link]() Verknüpfungen
< <= > >= → Einschließungsrelationen einer Funktion mit *sequence
[Link]() →aufzählbare Ansichten Operatoren existieren auch als Methoden. Klammern (Aufruf). **dict
[Link]() keys/Werte/Assoziationen
[Link](key[,default])→ Wert [Link](s2) [Link]()
[Link]()→ (key,Wert) [Link](key) [Link](key) [Link](prefix[,start[,ende]])Zeichenketten-Operationen
[Link](key[,default])→ Wert [Link](key) [Link]() [Link](suffix[,start[,ende]]) [Link]([Zeichen])
[Link](key[,default])→Wert [Link]() [Link](sub[,start[,ende]])[Link](sep)→ (vorher,sep,nachher)
[Link](sub[,start[,ende]]) [Link](sub[,start[,ende]])
Daten permanent auf Platte speichern und auslesen Dateien [Link]…() prüft auf Zeichenkategorien (z.B. [Link]())
f = open("[Link]","w",encoding="utf8") [Link]() [Link]() [Link]() [Link]()
[Link]() [Link]() [Link]([Breite,Füllzeichen])
Datei-Variable Name der Datei Öffnungsmodus Kodierung der [Link]([Breite,Füllz.] [Link]([Breite,Füllz.]) [Link]([Breite])
für Operationen auf der Platte ◽ 'r' nur lesen (read) Zeichen für [Link](Kodierung) [Link]([sep]) [Link](Folge)
(+Pfad…) ◽ 'w' lesen&schreiben Textdateien:
◽ 'a' anfügen utf8 ascii Formatierungsanweisungen zu formatierende Werte Formatierung
[Link] os, [Link] und pathlib ◽ …'+' 'x' 'b' 't' latin1 …
"Muster{} {} {}".format(x,y,r) str
schreiben ☝ Lese leere Zeichenkette am Ende der Datei lesen "{Auswahl:Formatierung!Umwandlung}"
[Link]("coucou") [Link]([n]) → nächste Zeichen
[Link](Liste von Zeilen) wenn n nicht festgelegt, lese bis zum Ende! ◽ Auswahl : "{:+2.3f}".format(45.72793)
[Link]([n]) → list der nächste Zeilen 2 →'+45.728'
Beispiele