Spickzettel

Python-Spickzettel: Syntax, Befehle und eingebaute Funktionen in Tabellen

Aktualisiert: · Skillaria.Top

Die Syntax von Python beruht auf Einrückungen statt geschweifter Klammern: Der Block nach einem Doppelpunkt wird um 4 Leerzeichen eingerückt. Die Grundlagen sind Variablen ohne Typdeklaration, Bedingungen if/elif/else, Schleifen for und while, Funktionen mit def sowie die eingebauten Funktionen print, len, range, input, type und die Methoden für Strings, Listen und Dictionaries.

Dieser Python-Spickzettel fasst auf einer Seite zusammen, was Sie in den ersten Monaten ständig brauchen: Python-Syntax, Schleifen, eingebaute Funktionen, Methoden für Strings, Listen und Dictionaries sowie Terminalbefehle. Jede Tabelle ist ein kurzes Nachschlagewerk mit praktischen Beispielen, die Sie direkt in der REPL ausprobieren können.

Grundlagen der Python-Syntax

Das wichtigste Merkmal der Sprache: Blöcke werden durch Einrückung gekennzeichnet, nicht durch Klammern. Nach einer Zeile mit Doppelpunkt (if, for, def, class) werden die folgenden Zeilen um 4 Leerzeichen eingerückt. Tabulatoren und Leerzeichen dürfen nicht gemischt werden — sonst erhalten Sie einen IndentationError.

KonstruktionBeispielErläuterung
Kommentar# Textalles nach # bis zum Zeilenende wird ignoriert
Variableage = 25kein Typ wird deklariert, der Wert bestimmt ihn
Mehrfachzuweisunga, b = 1, 2Entpacken; Werte tauschen: a, b = b, a
Ausgabeprint("Hallo", name)die Argumente werden durch ein Leerzeichen getrennt
Eingabes = input("Name: ")liefert immer eine Zeichenkette
f-Stringf"{name}: {price:.2f}"Einsetzen von Ausdrücken und Formatierung
Typannotationcount: int = 0Hinweis für IDE und Prüfwerkzeuge, beim Start nicht geprüft
Leerer BlockpassPlatzhalter, wo die Syntax einen Rumpf verlangt
Importfrom math import sqrtEinbinden eines Moduls oder eines Namens daraus

Datentypen

TypLiteralVeränderbar
int42, 1_000_000nein
float3.14, 1e-3nein
boolTrue, Falsenein
str"Text", 'Text', """mehrzeilig"""nein
list[1, 2, 3]ja
tuple(1, 2), (1,)nein
dict{"a": 1}ja
set{1, 2}, leer — set()ja
NoneTypeNone—

Operatoren

GruppeOperatorenBeispiel → Ergebnis
Arithmetik+ - * / // % **7 // 2 → 3, 7 % 2 → 1, 2 ** 10 → 1024
Vergleich== != < > <= >=1 < x < 10 — Vergleichskette
Logikand or notx or "Standard"
Zugehörigkeitin, not in"a" in "abc" → True
Identitätis, is notx is None
Zuweisung+= -= *= /=, :=if (n := len(s)) > 10: ...

Bedingungen und Musterabgleich

if score >= 90:
    grade = "A"
elif score >= 70:
    grade = "B"
else:
    grade = "C"

status = "erwachsen" if age >= 18 else "kind"   # ternärer Operator

match command:
    case "start":
        print("Start")
    case "stop" | "exit":
        print("Stopp")
    case _:
        print("Unbekannter Befehl")

Falsch sind False, None, 0, eine leere Zeichenkette und leere Sammlungen. Deshalb schreibt man statt if len(items) > 0 einfach if items.

Schleifen in Python: Syntax von for und while

Die for-Schleife

Syntax der for-Schleife in Python: for variable in folge: und der eingerückte Rumpf. Die Schleife durchläuft jedes iterierbare Objekt — eine Zeichenkette, eine Liste, ein Dictionary, eine Datei, range.

for i in range(5):              # 0 1 2 3 4
    print(i)

for i in range(10, 0, -2):      # 10 8 6 4 2
    print(i)

for i, fruit in enumerate(["Apfel", "Birne"], start=1):
    print(i, fruit)

for name, score in zip(names, scores):
    print(name, score)

for key, value in prices.items():
    print(key, value)

Die while-Schleife

attempts = 3
while attempts > 0:
    password = input("Passwort: ")
    if password == "geheim":
        print("Anmeldung erfolgreich")
        break
    attempts -= 1
else:
    print("Versuche aufgebraucht")   # läuft, wenn kein break kam
BefehlWas er tut
breakverlässt die Schleife vorzeitig
continuespringt zur nächsten Iteration
else an einer Schleifeläuft, wenn die Schleife ohne break endete
range(stop), range(start, stop, step)Zahlenfolge, stop ist nicht enthalten

Comprehensions

squares = [x ** 2 for x in range(10)]
evens = [x for x in numbers if x % 2 == 0]
lengths = {word: len(word) for word in words}
unique = {c.lower() for c in text}
total = sum(x * x for x in range(100))   # Generatorausdruck

Funktionen

def greet(name: str, greeting: str = "Hallo") -> str:
    """Gibt eine Begrüßung zurück."""
    return f"{greeting}, {name}!"

def total(*args, **kwargs):
    return sum(args), kwargs

square = lambda x: x * x
print(greet("Anna"))                  # Hallo, Anna!
print(greet("Anna", greeting="Servus"))  # Servus, Anna!
ElementBedeutung
def f(a, b=1)Parameter mit Standardwert
*argsbeliebig viele Positionsargumente (Tupel)
**kwargsbeliebig viele benannte Argumente (Dictionary)
returngibt einen Wert zurück; ohne ihn liefert die Funktion None
lambda x: ...kurze anonyme Funktion aus einem einzigen Ausdruck
global, nonlocalÄndern einer Variablen aus einem äußeren Gültigkeitsbereich

Verwenden Sie keine veränderbaren Standardwerte wie def f(items=[]): Die Liste wird nur einmal erzeugt und sammelt sich über die Aufrufe hinweg. Richtig ist items=None und darin if items is None: items = [].

Eingebaute Funktionen in Python

Die eingebauten Funktionen stehen ohne Import zur Verfügung. Es sind die Grundfunktionen, die in fast jedem Skript vorkommen.

FunktionWas sie tutBeispiel → Ergebnis
print()gibt Werte ausprint(1, 2, sep="-") → 1-2
input()liest eine Zeile von der Tastaturint(input())
len()Länge einer Sammlung oder Zeichenkettelen("abc") → 3
type()Typ eines Objektstype(3.0) → <class 'float'>
isinstance()Typprüfungisinstance(5, int) → True
int() float() str() bool()Typumwandlungint("42") → 42
list() tuple() set() dict()Erzeugen von Sammlungenlist("ab") → ['a', 'b']
range()Zahlenbereichlist(range(3)) → [0, 1, 2]
enumerate()Paare (Index, Element)list(enumerate("ab")) → [(0, 'a'), (1, 'b')]
zip()verbindet Folgen paarweiselist(zip([1, 2], "ab")) → [(1, 'a'), (2, 'b')]
sum() min() max()Summe, Minimum, Maximummax([3, 7, 1]) → 7
abs() round()Betrag und Rundenround(3.14159, 2) → 3.14
sorted()neue sortierte Listesorted(words, key=len, reverse=True)
reversed()Iterator in umgekehrter Reihenfolgelist(reversed([1, 2])) → [2, 1]
map() filter()Funktion anwenden / filternlist(map(str, [1, 2])) → ['1', '2']
any() all()mindestens einer / alle wahrall(x > 0 for x in nums)
open()öffnet eine Dateiopen("a.txt", encoding="utf-8")
help() dir()Hilfe und Liste der Attributehelp(str.split), dir(list)
id() hash()Kennung und Hashwert eines Objektshash("a")

Das praktischste Nachschlagewerk haben Sie immer dabei: die Funktion help() in der REPL. help(dict) zeigt alle Methoden eines Dictionaries mit Beschreibung, dir(obj) die Liste der verfügbaren Namen.

Methoden für Strings

Syntax von Zeichenketten in Python: Eine Zeichenkette ist unveränderlich, jede Methode liefert eine neue Zeichenkette. Slices funktionieren wie bei Listen: s[1:4], s[::-1] dreht die Zeichenkette um.

MethodeBeispiel → Ergebnis
upper() lower()"Py".upper() → 'PY'
capitalize() title()"hello world".title() → 'Hello World'
strip() lstrip() rstrip()" hi \n".strip() → 'hi'
split(sep)"a,b,c".split(",") → ['a', 'b', 'c']
join(iterable)"-".join(["a", "b"]) → 'a-b'
replace(old, new)"Hut".replace("H", "B") → 'But'
find() index()"hello".find("l") → 2; ohne Treffer -1 (bei index gibt es einen Fehler)
count()"banana".count("a") → 3
startswith() endswith()"file.py".endswith(".py") → True
isdigit() isalpha() isspace()"123".isdigit() → True
removeprefix() removesuffix()"test_a".removeprefix("test_") → 'a'
zfill() center() ljust()"7".zfill(3) → '007'
format()"{} + {}".format(1, 2) → '1 + 2'

Befehle für Listen in Python

Eine Liste ist eine veränderbare, geordnete Sammlung. Die meisten Methoden ändern die Liste direkt und liefern None zurück, deshalb ist a = a.sort() ein häufiger Fehler.

OperationWas sie tutBeispiel
append(x)fügt am Ende hinzua.append(4)
extend(iter)fügt alle Elemente hinzua.extend([5, 6])
insert(i, x)fügt an einem Index eina.insert(0, "erste")
remove(x)entfernt das erste Vorkommen des Wertsa.remove(3)
pop(i)entfernt und liefert ein Element (standardmäßig das letzte)last = a.pop()
clear()leert die Listea.clear()
index(x)Index des ersten Vorkommensa.index("b")
count(x)Anzahl der Vorkommena.count(1)
sort()sortiert direkta.sort(key=str.lower)
reverse()kehrt direkt uma.reverse()
copy()flache Kopieb = a.copy()
del a[i]Löschen per Index oder Slicedel a[1:3]
Slicesa[start:stop:step]a[-1] — das letzte, a[:3] — die ersten drei

Methoden für Dictionaries in Python

OperationWas sie tutBeispiel
d[key]Wert zu einem Schlüssel, fehlt der Schlüssel — KeyErrord["name"]
get(key, default)Wert oder Ersatzwertd.get("age", 0)
d[key] = valuehinzufügen oder ändernd["city"] = "Berlin"
keys() values() items()Schlüssel, Werte, Paarefor k, v in d.items():
update()mit einem anderen Dictionary zusammenführend.update({"a": 1})
d1 | d2neues zusammengeführtes Dictionarymerged = defaults | user
pop(key, default)entfernt und liefert den Wertd.pop("tmp", None)
popitem()entfernt das zuletzt hinzugefügte Paard.popitem()
setdefault(key, value)liefert den Wert, legt ihn bei fehlendem Schlüssel and.setdefault("tags", []).append("py")
key in dprüft, ob der Schlüssel existiertif "name" in d:
dict.fromkeys()Dictionary aus Schlüsseln mit einem Wertdict.fromkeys("abc", 0)
len(d), del d[key]Größe und Löschendel d["old"]

Tupel und Mengen

OperationBeispiel → Ergebnis
Entpacken eines Tupelsx, y = (3, 4)
Zur Menge hinzufügens.add(5), entfernen — s.discard(5)
Vereinigung / Schnitt{1, 2} | {2, 3} → {1, 2, 3}; {1, 2} & {2, 3} → {2}
Differenz{1, 2} - {2} → {1}
Doppelte aus einer Liste entfernenlist(dict.fromkeys(items)) — unter Beibehaltung der Reihenfolge

Ausnahmen und Dateien

try:
    number = int(input("Zahl: "))
except ValueError as err:
    print("Das ist keine Zahl:", err)
else:
    print("Erfolg")
finally:
    print("Wird immer ausgeführt")

with open("data.txt", "w", encoding="utf-8") as f:
    f.write("Zeile\n")

with open("data.txt", encoding="utf-8") as f:
    for line in f:
        print(line.rstrip())
AusnahmeWann sie auftritt
SyntaxError, IndentationErrorFehler in der Syntax oder bei der Einrückung
NameErrorName nicht definiert (Tippfehler)
TypeErrorOperation mit ungeeignetem Typ: "1" + 1
ValueErrorrichtiger Typ, aber falscher Wert: int("abc")
IndexError, KeyErrorIndex oder Schlüssel nicht vorhanden
FileNotFoundErrorDatei nicht gefunden
ZeroDivisionErrorDivision durch null

Klassen

from dataclasses import dataclass

class Dog:
    def __init__(self, name: str):
        self.name = name

    def bark(self) -> str:
        return f"{self.name}: Wau!"

@dataclass
class Point:
    x: float
    y: float

print(Dog("Waldi").bark())   # Waldi: Wau!
print(Point(1, 2))           # Point(x=1, y=2)

Eingebaute Module in Python

Die Standardbibliothek kommt mit dem Interpreter — es genügt ein import.

ModulWofürBeispiel
mathMathematikmath.sqrt(16) → 4.0
randomZufallszahlenrandom.randint(1, 6), random.choice(items)
datetimeDatum und Uhrzeitdatetime.date.today()
pathlibPfade und DateienPath("data").glob("*.csv")
os, sysSystem, Umgebungsvariablen, Argumenteos.environ.get("HOME"), sys.argv
jsonJSON lesen und schreibenjson.loads(text), json.dumps(obj, ensure_ascii=False)
csvCSV-Tabellencsv.DictReader(f)
collectionsCounter, defaultdict, dequeCounter("banana").most_common(1) → [('a', 3)]
itertoolsKombinationen und Verkettung von Iteratorenitertools.chain(a, b)
rereguläre Ausdrückere.findall(r"\d+", s)
timePausen und Zeitmessungtime.sleep(1), time.perf_counter()
asyncioasynchroner Codeasyncio.run(main())

In Python 3.15 gibt es den verzögerten Import (PEP 810): lazy import pandas as pd verschiebt das Laden des Moduls bis zum ersten Zugriff, sodass ein Skript mit schweren Abhängigkeiten deutlich schneller startet.

Python-Befehle im Terminal

Die Anfragen zu „Python-Befehlen“ betreffen den Start des Interpreters und die Installation von Bibliotheken. Unter Windows schreibt man statt python3 meist python oder py.

BefehlWas er tut
python3 --versionzeigt die Version
python3öffnet die interaktive Konsole REPL (Beenden mit exit())
python3 script.pystartet eine Datei
python3 -c "print(2 + 2)"führt eine einzelne Zeile aus
python3 -m venv .venvlegt eine virtuelle Umgebung an
source .venv/bin/activate / .venv\Scripts\activateaktiviert die Umgebung (Linux, macOS / Windows)
python3 -m pip install requestsinstalliert ein Paket
pip list, pip freeze > requirements.txtlistet Pakete auf und speichert sie
pip install -r requirements.txtinstalliert Abhängigkeiten aus einer Datei
python3 -m http.server 8000einfacher Webserver im aktuellen Ordner
uv init, uv add requests, uv run main.pyProjekt, Abhängigkeit und Start über den Manager uv

Typische Fehler von Einsteigern

  • Vergleich mit = — in einer Bedingung braucht man ==; ein einzelnes = ist eine Zuweisung.
  • Vergessener Doppelpunkt nach if, for, def führt zu einem SyntaxError.
  • Addition von Zeichenkette und Zahl: "Alter: " + 25 ist ein Fehler, schreiben Sie f"Alter: {25}".
  • Liste während des Durchlaufs ändern — durchlaufen Sie eine Kopie for x in a[:] oder bauen Sie eine neue Liste auf.
  • input() liefert eine Zeichenkette — für Rechnungen mit int() oder float() umwandeln.

Fazit

Die Syntax von Python beruht auf Einrückungen, Doppelpunkten und einem kleinen Satz an Konstruktionen: Bedingungen, Schleifen for und while, Funktionen, Klassen. Ergänzen Sie diese um zwei Dutzend eingebaute Funktionen und die Methoden für Strings, Listen und Dictionaries — und Sie decken den größten Teil der alltäglichen Aufgaben ab. Bewahren Sie den Spickzettel auf; wenn die Tabellen vertraut sind, gehen Sie zu Modulen und Asynchronität über. Alles davon wird im Kurs „Python 3.15: vom Anfänger zum Profi“ Schritt für Schritt praktisch durchgegangen.

Häufige Fragen

Wie viele Leerzeichen gehören zur Einrückung in Python?

Nach dem Standard PEP 8 sind es 4 Leerzeichen pro Ebene. Wichtig ist, dass man es im gesamten Block einheitlich macht und Tabulatoren nicht damit mischt.

Worin unterscheidet sich eine Liste von einem Tupel?

Eine Liste ist veränderbar, man kann sie ergänzen und direkt sortieren; ein Tupel ist unveränderlich und eignet sich deshalb als Dictionary-Schlüssel und für feste Wertesätze.

Wie sehe ich alle Methoden eines Objekts direkt in Python?

Rufen Sie dir(obj) für die Liste der Namen und help(obj) für die Beschreibung auf — help(str) zeigt zum Beispiel alle Methoden von Zeichenketten.

Worin unterscheidet sich sort() von sorted()?

Die Methode list.sort() sortiert die Liste selbst und liefert None, die Funktion sorted() gibt eine neue Liste zurück und arbeitet mit jeder iterierbaren Sammlung.

Braucht man ein Semikolon am Ende einer Zeile?

Nein. Ein Semikolon ist nur dann erlaubt, wenn mehrere Anweisungen in einer Zeile stehen; im normalen Code schreibt man jede Anweisung in eine eigene Zeile.