Python-Syntax – Ein umfassender Leitfaden
Python-Syntax von Grund auf lernen: Einrückungsregeln, Variablen, Kommentare, Datentypen, Schleifen, Bedingungen und Funktionen.
Die Python-Syntax ist der Satz von Regeln, der festlegt, wie ein Python-Programm geschrieben werden muss, damit der Interpreter es verstehen und ausführen kann. Im Gegensatz zu Sprachen wie C oder Java verwendet Python Leerzeichen-Einrückungen anstelle von geschweiften Klammern, um Codeblöcke abzugrenzen, und liest sich fast wie einfaches Englisch — was einer der Hauptgründe ist, warum Python eine beliebte erste Sprache für Einsteiger ist.
Dieses Kapitel behandelt die wesentlichen Grundbausteine der Python-Syntax: Einrückung, Anweisungen, Kommentare, Variablen, Datentypen, Operatoren, Kontrollfluss, Schleifen, Funktionen und einige häufige Fallstricke.
Einrückung
In Python ist Einrückung keine Stilfrage — sie ist Teil der Grammatik der Sprache. Der Interpreter verwendet die Einrückung, um zu bestimmen, welche Anweisungen zum gleichen Block gehören. Die Standardkonvention (und die von den meisten Linters durchgesetzte) sind 4 Leerzeichen pro Ebene.
Das Mischen von Tabulatoren und Leerzeichen in derselben Datei verursacht einen IndentationError. Verwenden Sie konsequent eines von beiden — der Python-Stilguide (PEP 8) empfiehlt Leerzeichen.
Häufige Einrückungsfehler
# IndentationError: expected an indented block
if True:
print("oops") # missing indentation# IndentationError: unexpected indent
x = 1
y = 2 # indented for no reasonAnweisungen und Zeilenfortsetzung
Jede Python-Anweisung belegt normalerweise eine Zeile und endet nicht mit einem Semikolon (obwohl ein Semikolon technisch gültig ist). Wenn eine Anweisung zu lang ist, können Sie sie auf zwei Arten über mehrere Zeilen verteilen.
Implizite Fortsetzung innerhalb von Klammern — jede offene (, [ oder { erlaubt die Fortsetzung in der nächsten Zeile:
total = (
100
+ 200
+ 300
)
print(total) # 600Explizite Fortsetzung mit einem Backslash (\):
result = 1 + 2 + 3 \
+ 4 + 5
print(result) # 15Sie können auch mehrere Anweisungen mit einem Semikolon in eine Zeile schreiben, was jedoch nicht empfohlen wird:
x = 1; y = 2; print(x + y) # works, but avoid this styleKommentare
Kommentare erläutern die Absicht und werden vom Interpreter ignoriert. Python kennt zwei Arten.
Einzeilige Kommentare
Beginnen Sie einen Kommentar mit #. Alles nach # in dieser Zeile wird ignoriert:
# Calculate the area of a circle
radius = 5
area = 3.14159 * radius ** 2 # ** is the exponentiation operator
print(area)Mehrzeilige Kommentare (Docstrings)
Python hat keine dedizierte Block-Kommentar-Syntax. Die Konvention ist die Verwendung von dreifach zitierten Zeichenketten. Wenn sie am Anfang einer Funktion, Klasse oder eines Moduls stehen, werden sie zu Docstrings — zur Laufzeit über help() zugänglich:
def greet(name):
"""Return a greeting for the given name.
Args:
name (str): The person's name.
"""
return f"Hello, {name}!"
print(greet("Alice")) # Hello, Alice!Variablen und Zuweisung
Eine Variable wird in dem Moment erstellt, in dem Sie ihr einen Wert zuweisen. Python ist dynamisch typisiert, daher wird kein Typ deklariert:
x = 10 # integer
pi = 3.14 # float
name = "Alice" # string
active = True # booleanSie können mehrere Variablen in einer Zeile zuweisen:
a, b, c = 1, 2, 3
print(a, b, c) # 1 2 3Oder denselben Wert mehreren Variablen gleichzeitig zuweisen:
x = y = z = 0
print(x, y, z) # 0 0 0Variablennamen unterscheiden Groß- und Kleinschreibung (age, Age und AGE sind drei verschiedene Variablen). Weitere Informationen zu Benennungsregeln und -konventionen finden Sie im Kapitel Python-Variablen.
Datentypen
Jeder Wert in Python hat einen Typ. Die gebräuchlichsten eingebauten Typen sind:
| Typ | Beispiel | Hinweise |
|---|---|---|
int | 42 | Ganzzahl mit beliebiger Genauigkeit |
float | 3.14 | 64-Bit-Gleitkommazahl |
str | "hello" | Unveränderliche Folge von Unicode-Zeichen |
bool | True / False | Unterklasse von int (True == 1, False == 0) |
list | [1, 2, 3] | Geordnete, veränderliche Folge |
tuple | (1, 2, 3) | Geordnete, unveränderliche Folge |
dict | {"a": 1} | Schlüssel-Wert-Zuordnung |
set | {1, 2, 3} | Ungeordnete Sammlung eindeutiger Werte |
NoneType | None | Stellt das Fehlen eines Wertes dar |
Überprüfen Sie den Typ eines beliebigen Wertes mit type():
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("hello")) # <class 'str'>
print(type(True)) # <class 'bool'>
print(type(None)) # <class 'NoneType'>Einen tieferen Einblick in Typen bietet das Kapitel Python-Datentypen.
Operatoren
Python unterstützt verschiedene Kategorien von Operatoren.
Arithmetische Operatoren
a, b = 10, 3
print(a + b) # 13 — addition
print(a - b) # 7 — subtraction
print(a * b) # 30 — multiplication
print(a / b) # 3.3333... — true division (always returns float)
print(a // b) # 3 — floor division
print(a % b) # 1 — modulo (remainder)
print(a ** b) # 1000 — exponentiationVergleichsoperatoren
Vergleichsoperatoren geben True oder False zurück:
print(5 == 5) # True
print(5 != 3) # True
print(5 > 3) # True
print(5 < 3) # False
print(5 >= 5) # True
print(5 <= 4) # FalseLogische Operatoren
print(True and False) # False
print(True or False) # True
print(not True) # FalseEine vollständige Referenz mit Zuweisungs-, bitweisen und Identitätsoperatoren finden Sie im Kapitel Python-Operatoren.
Zeichenketten
Zeichenketten sind Folgen von Unicode-Zeichen. Sie können in einfachen Anführungszeichen, doppelten Anführungszeichen oder dreifachen Anführungszeichen eingeschlossen werden:
s1 = "Hello, World!"
s2 = 'Hello, World!'
s3 = """This string
spans multiple lines."""f-strings (formatierte Zeichenkettenliterale)
Mit Python 3.6 eingeführt, sind f-strings die empfohlene Methode, um Ausdrücke in Zeichenketten einzubetten:
name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")
# My name is Alice and I am 30 years old.Häufige Zeichenkettenoperationen
s = "python"
print(s.upper()) # PYTHON
print(s.capitalize()) # Python
print(len(s)) # 6
print(s[0]) # p (indexing)
print(s[1:4]) # yth (slicing)
print(s + " rocks") # python rocks (concatenation)Listen
Eine Liste ist eine geordnete, veränderliche Sammlung. Elemente können gemischte Typen haben:
fruits = ["apple", "banana", "cherry"]
print(fruits[0]) # apple
print(fruits[-1]) # cherry (negative index = from end)
fruits.append("date")
print(fruits) # ['apple', 'banana', 'cherry', 'date']
print(len(fruits)) # 4Kontrollfluss
Die if / elif / else-Anweisung
Verwenden Sie if, elif (else-if) und else, um auf Bedingungen zu verzweigen:
score = 75
if score >= 90:
grade = "A"
elif score >= 75:
grade = "B"
elif score >= 60:
grade = "C"
else:
grade = "F"
print(f"Grade: {grade}") # Grade: BEin wichtiger Fallstrick: Anders als in vielen Sprachen hat Python keine switch/case-Syntax vor Python 3.10. Für mehrere Bedingungen zur gleichen Variable verwenden Sie elif-Ketten oder eine Wörterbuch-Suche. Python 3.10+ führte die match-Anweisung als strukturelle Mustervergleichs-Alternative ein.
Eine vollständige Referenz finden Sie im Kapitel Python If Else.
Die for-Schleife
Die for-Schleife iteriert über jedes Iterable — eine Liste, Zeichenkette, einen Bereich oder eine andere Folge:
Verwenden Sie range(), um eine bestimmte Anzahl von Durchläufen zu iterieren:
for i in range(5):
print(i) # 0, 1, 2, 3, 4Verwenden Sie enumerate(), wenn Sie sowohl den Index als auch den Wert benötigen:
colors = ["red", "green", "blue"]
for index, color in enumerate(colors):
print(index, color)
# 0 red
# 1 green
# 2 blueDie while-Schleife
Die while-Schleife wiederholt sich, solange ihre Bedingung True ist:
Stellen Sie immer sicher, dass die Bedingung irgendwann False wird, sonst entsteht eine Endlosschleife.
break, continue und else bei Schleifen
break— verlässt die Schleife sofortcontinue— überspringt den Rest der aktuellen Iteration und fährt mit der nächsten fortelsebei einer Schleife — wird ausgeführt, nachdem die Schleife normal abgeschlossen wurde (d. h. ohnebreakzu treffen)
for n in range(10):
if n == 3:
continue # skip 3
if n == 6:
break # stop at 6
print(n)
# 0 1 2 4 5Funktionen
Funktionen ermöglichen es Ihnen, wiederverwendbare Logik unter einem Namen zusammenzufassen. Definieren Sie eine Funktion mit def:
def add(a, b):
"""Return the sum of a and b."""
return a + b
result = add(3, 4)
print(result) # 7Standardparameterwerte
def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
greet("Alice") # Hello, Alice!
greet("Bob", "Hi") # Hi, Bob!Mehrere Rückgabewerte
Python-Funktionen können mehrere Werte als Tuple zurückgeben:
def min_max(numbers):
return min(numbers), max(numbers)
low, high = min_max([3, 1, 4, 1, 5, 9])
print(low, high) # 1 9Weitere Details finden Sie im Kapitel Python-Funktionen.
Schlüsselwörter
Python reserviert bestimmte Wörter für die Sprache selbst. Sie können diese nicht als Variablennamen verwenden:
False await else import pass
None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yieldWenn Sie versehentlich ein Schlüsselwort als Variablennamen verwenden, löst Python einen SyntaxError aus:
# SyntaxError: invalid syntax
for = 10Module und Importe
Python-Code ist in Module (.py-Dateien) organisiert. Sie importieren den Inhalt eines Moduls mit import:
import math
print(math.sqrt(16)) # 4.0
print(math.pi) # 3.141592653589793Importieren Sie bestimmte Namen mit from ... import:
from math import sqrt, pi
print(sqrt(25)) # 5.0Verwenden Sie einen Alias, um lange Modulnamen zu kürzen:
import datetime as dt
today = dt.date.today()
print(today) # e.g. 2026-06-19