W3docs

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.

python— editable, runs on the server

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 reason

Anweisungen 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)   # 600

Explizite Fortsetzung mit einem Backslash (\):

result = 1 + 2 + 3 \
         + 4 + 5
print(result)  # 15

Sie 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 style

Kommentare

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   # boolean

Sie können mehrere Variablen in einer Zeile zuweisen:

a, b, c = 1, 2, 3
print(a, b, c)   # 1 2 3

Oder denselben Wert mehreren Variablen gleichzeitig zuweisen:

x = y = z = 0
print(x, y, z)   # 0 0 0

Variablennamen 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:

TypBeispielHinweise
int42Ganzzahl mit beliebiger Genauigkeit
float3.1464-Bit-Gleitkommazahl
str"hello"Unveränderliche Folge von Unicode-Zeichen
boolTrue / FalseUnterklasse 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
NoneTypeNoneStellt 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 — exponentiation

Vergleichsoperatoren

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)    # False

Logische Operatoren

print(True and False)   # False
print(True or False)    # True
print(not True)         # False

Eine 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))       # 4

Kontrollfluss

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: B

Ein 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:

python— editable, runs on the server

Verwenden Sie range(), um eine bestimmte Anzahl von Durchläufen zu iterieren:

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

Verwenden 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 blue

Die while-Schleife

Die while-Schleife wiederholt sich, solange ihre Bedingung True ist:

python— editable, runs on the server

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 sofort
  • continue — überspringt den Rest der aktuellen Iteration und fährt mit der nächsten fort
  • else bei einer Schleife — wird ausgeführt, nachdem die Schleife normal abgeschlossen wurde (d. h. ohne break zu 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 5

Funktionen

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)   # 7

Standardparameterwerte

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 9

Weitere 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       yield

Wenn Sie versehentlich ein Schlüsselwort als Variablennamen verwenden, löst Python einen SyntaxError aus:

# SyntaxError: invalid syntax
for = 10

Module 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.141592653589793

Importieren Sie bestimmte Namen mit from ... import:

from math import sqrt, pi
print(sqrt(25))   # 5.0

Verwenden Sie einen Alias, um lange Modulnamen zu kürzen:

import datetime as dt
today = dt.date.today()
print(today)   # e.g. 2026-06-19

Übung

Übung
What are some general rules to follow when indenting code in Python as mentioned on w3docs.com?
What are some general rules to follow when indenting code in Python as mentioned on w3docs.com?
Was this page helpful?