Python für Anfänger
Programmieren lernen von Null — Schritt für Schritt mit vielen Beispielen
1 · Was ist Python?
Python ist eine der beliebtesten Programmiersprachen der Welt — einfach lesbar, mächtig und vielseitig. Sie wird für Webentwicklung, Datenanalyse, KI, Automatisierung, Spiele und vieles mehr eingesetzt.
Einfach zu lernen
Plattformübergreifend
Riesige Bibliothek
Große Community
Wofür wird Python verwendet?
- Webentwicklung — Django, Flask
- Datenanalyse & KI — Pandas, NumPy, TensorFlow
- Automatisierung — Skripte, Bots, Dateiverarbeitung
- Desktop-Apps — tkinter, ttkbootstrap
- Spielentwicklung — Pygame
- Netzwerk & IT — Netzwerktools, Server-Scripts
2 · Installation
Python ist kostenlos und läuft auf Windows, macOS und Linux.
Download
Gehe auf python.org/downloads und lade die neueste Version herunter.
Installation prüfen
python --version # oder auf manchen Systemen: python3 --version
Erstes Programm
Erstelle eine Datei hallo.py und schreibe:
print("Hallo, Welt!")
Ausführen im Terminal:
python hallo.py
print() gibt Text auf dem Bildschirm aus. Das ist der wichtigste Befehl für Anfänger!3 · Variablen
Variablen sind benannte Speicherplätze für Werte. In Python brauchst du kein Datentyp angeben — Python erkennt ihn automatisch.
# Variable erstellen (= zuweisen)
name = "Tino"
alter = 42
groesse = 1.80
aktiv = True
# Ausgabe
print(name) # Tino
print(alter) # 42
print(groesse) # 1.8
print(aktiv) # True
# Mehrere Werte auf einmal ausgeben
print("Name:", name, "| Alter:", alter)
# Variablen kann man jederzeit ändern
alter = 43
print("Nächstes Jahr:", alter) # 43
Eingabe vom Benutzer
# input() wartet auf Eingabe des Benutzers
name = input("Wie heißt du? ")
print("Hallo,", name + "!")
# Zahl einlesen (input liefert immer Text → int() umwandeln)
alter = int(input("Wie alt bist du? "))
print("In 10 Jahren bist du", alter + 10, "Jahre alt.")
Namensregeln für Variablen
| Erlaubt ✅ | Nicht erlaubt ❌ |
|---|---|
mein_name, alter2, _wert | 2name (beginnt mit Zahl) |
Groß-/Kleinschreibung: Name ≠ name | mein-name (Bindestrich) |
| Unterstrich statt Leerzeichen | for, if, class (reserviert) |
4 · Datentypen
Python kennt mehrere eingebaute Datentypen. Mit type() kannst du den Typ einer Variable abfragen.
# Text (String) name = "Tino" print(type(name)) # <class 'str'> # Ganze Zahl (Integer) alter = 42 print(type(alter)) # <class 'int'> # Kommazahl (Float) groesse = 1.80 print(type(groesse)) # <class 'float'> # Wahrheitswert (Boolean) aktiv = True print(type(aktiv)) # <class 'bool'> # Kein Wert (NoneType) wert = None print(type(wert)) # <class 'NoneType'>
Strings (Text) — wichtige Methoden
text = "Hallo, Welt!"
print(len(text)) # 13 — Länge
print(text.upper()) # HALLO, WELT!
print(text.lower()) # hallo, welt!
print(text.replace("Welt","Python")) # Hallo, Python!
print(text.startswith("Hallo")) # True
print(text.split(", ")) # ['Hallo', 'Welt!']
print(text[0]) # H — erstes Zeichen
print(text[-1]) # ! — letztes Zeichen
print(text[0:5]) # Hallo — Ausschnitt
# f-String (empfohlen für Ausgabe)
name = "Tino"
alter = 42
print(f"Ich heiße {name} und bin {alter} Jahre alt.")
# → Ich heiße Tino und bin 42 Jahre alt.
Typumwandlung
x = "42" # String
y = int(x) # → Integer: 42
z = float(x) # → Float: 42.0
a = str(100) # → String: "100"
b = bool(0) # → False
c = bool(1) # → True
d = bool("") # → False (leerer String)
e = bool("Hallo") # → True
5 · Operatoren
Rechenoperatoren
a, b = 10, 3 print(a + b) # 13 — Addition print(a - b) # 7 — Subtraktion print(a * b) # 30 — Multiplikation print(a / b) # 3.33 — Division (immer float) print(a // b) # 3 — Ganzzahldivision print(a % b) # 1 — Rest (Modulo) print(a ** b) # 1000 — Potenz (10³) # Kurzform x = 5 x += 3 # x = x + 3 → 8 x -= 2 # x = x - 2 → 6 x *= 4 # x = x * 4 → 24
Vergleichsoperatoren
print(5 == 5) # True — gleich print(5 != 3) # True — ungleich print(5 > 3) # True — größer print(5 < 3) # False — kleiner print(5 >= 5) # True — größer oder gleich print(5 <= 4) # False — kleiner oder gleich
Logische Operatoren
alter = 25 fuehrerschein = True # and — beide Bedingungen müssen wahr sein print(alter >= 18 and fuehrerschein) # True # or — mindestens eine Bedingung muss wahr sein print(alter < 18 or fuehrerschein) # True # not — kehrt den Wert um print(not fuehrerschein) # False
6 · Kontrollfluss (if / elif / else)
Mit if kannst du Entscheidungen treffen. Einrückung (4 Leerzeichen) ist in Python Pflicht — sie ersetzt die geschweiften Klammern anderer Sprachen.
alter = 20
if alter >= 18:
print("Du bist volljährig.")
elif alter >= 16:
print("Du darfst Bier trinken (in DE/AT).")
else:
print("Du bist noch minderjährig.")
# → Du bist volljährig.
Praxisbeispiel — Note berechnen
punkte = int(input("Punkte (0-100): "))
if punkte >= 90:
note = "Sehr Gut (1)"
elif punkte >= 75:
note = "Gut (2)"
elif punkte >= 60:
note = "Befriedigend (3)"
elif punkte >= 50:
note = "Genügend (4)"
else:
note = "Nicht Genügend (5)"
print(f"Deine Note: {note}")
Einzeilige if-Bedingung (Ternary)
alter = 20 status = "volljährig" if alter >= 18 else "minderjährig" print(status) # volljährig
7 · Schleifen
Schleifen wiederholen Code. Python kennt for und while.
for-Schleife
# Zahlen 0–4
for i in range(5):
print(i)
# Zahlen 1–10
for i in range(1, 11):
print(i)
# In Zweier-Schritten
for i in range(0, 20, 2):
print(i) # 0 2 4 6 ... 18
# Liste durchlaufen
tiere = ["Katze", "Hund", "Vogel"]
for tier in tiere:
print("Tier:", tier)
# Mit Index (enumerate)
for i, tier in enumerate(tiere):
print(f"{i+1}. {tier}")
while-Schleife
# Solange die Bedingung wahr ist
zaehler = 1
while zaehler <= 5:
print(f"Durchgang {zaehler}")
zaehler += 1
# Endlosschleife mit break
while True:
eingabe = input("Tippe 'stop' zum Beenden: ")
if eingabe == "stop":
break
print(f"Du hast '{eingabe}' eingegeben.")
break, continue, pass
for i in range(10):
if i == 3:
continue # Überspringe 3
if i == 7:
break # Beende Schleife bei 7
print(i)
# → 0 1 2 4 5 6
8 · Funktionen
Funktionen sind wiederverwendbare Code-Blöcke. Sie werden mit def definiert.
# Einfache Funktion
def begruessen():
print("Hallo!")
begruessen() # Hallo!
# Funktion mit Parameter
def begruessen_person(name):
print(f"Hallo, {name}!")
begruessen_person("Tino") # Hallo, Tino!
# Funktion mit Rückgabewert
def addieren(a, b):
return a + b
ergebnis = addieren(5, 3)
print(ergebnis) # 8
# Standardwert für Parameter
def begruessen2(name, sprache="de"):
if sprache == "de":
print(f"Hallo, {name}!")
elif sprache == "en":
print(f"Hello, {name}!")
begruessen2("Tino") # Hallo, Tino!
begruessen2("Tom", "en") # Hello, Tom!
Mehrere Rückgabewerte
def min_max(zahlen):
return min(zahlen), max(zahlen)
kleinste, groesste = min_max([3, 1, 7, 2, 9, 4])
print("Kleinste:", kleinste) # 1
print("Größte:", groesste) # 9
Praxisbeispiel — BMI-Rechner
def bmi_berechnen(gewicht_kg, groesse_m):
bmi = gewicht_kg / (groesse_m ** 2)
return round(bmi, 1)
def bmi_bewertung(bmi):
if bmi < 18.5:
return "Untergewicht"
elif bmi < 25:
return "Normalgewicht"
elif bmi < 30:
return "Übergewicht"
else:
return "Adipositas"
gewicht = float(input("Gewicht in kg: "))
groesse = float(input("Größe in m: "))
bmi = bmi_berechnen(gewicht, groesse)
print(f"Dein BMI: {bmi} ({bmi_bewertung(bmi)})")
9 · Listen & Dictionaries
Listen
Listen speichern mehrere Werte in einer geordneten Reihenfolge. Index beginnt bei 0.
fruechte = ["Apfel", "Banane", "Kirsche"]
# Zugriff
print(fruechte[0]) # Apfel
print(fruechte[-1]) # Kirsche (letztes Element)
print(fruechte[0:2]) # ['Apfel', 'Banane']
# Hinzufügen
fruechte.append("Mango") # ans Ende
fruechte.insert(1, "Birne") # an Position 1
# Entfernen
fruechte.remove("Banane") # nach Wert
del fruechte[0] # nach Index
# Sortieren
zahlen = [5, 2, 8, 1, 9, 3]
zahlen.sort()
print(zahlen) # [1, 2, 3, 5, 8, 9]
# Länge
print(len(fruechte))
# Prüfen ob enthalten
print("Mango" in fruechte) # True/False
# List Comprehension (kompakte Schleife)
quadrate = [x**2 for x in range(1, 6)]
print(quadrate) # [1, 4, 9, 16, 25]
Dictionaries
Dictionaries speichern Schlüssel-Wert-Paare — wie ein Wörterbuch oder eine Datenbank-Zeile.
person = {
"name": "Tino",
"alter": 42,
"stadt": "Kirchberg"
}
# Zugriff
print(person["name"]) # Tino
print(person.get("alter")) # 42 (sicherer Zugriff)
# Ändern / Hinzufügen
person["alter"] = 43
person["beruf"] = "Informatiker"
# Löschen
del person["stadt"]
# Alle Schlüssel / Werte
print(person.keys()) # dict_keys(['name', 'alter', 'beruf'])
print(person.values()) # dict_values(['Tino', 43, 'Informatiker'])
# Durchlaufen
for schluessel, wert in person.items():
print(f"{schluessel}: {wert}")
# Liste von Dicts (typisch für Daten)
personen = [
{"name": "Tino", "alter": 42},
{"name": "Anna", "alter": 35},
{"name": "Klaus", "alter": 58},
]
for p in personen:
print(f"{p['name']} ist {p['alter']} Jahre alt.")
10 · Dateien lesen & schreiben
# "w" = write (überschreibt), "a" = append (anhängen)
with open("notizen.txt", "w", encoding="utf-8") as datei:
datei.write("Erste Zeile\n")
datei.write("Zweite Zeile\n")
# Mehrere Zeilen auf einmal
zeilen = ["Montag\n", "Dienstag\n", "Mittwoch\n"]
with open("woche.txt", "w", encoding="utf-8") as datei:
datei.writelines(zeilen)
# Gesamten Inhalt lesen
with open("notizen.txt", "r", encoding="utf-8") as datei:
inhalt = datei.read()
print(inhalt)
# Zeile für Zeile lesen
with open("notizen.txt", "r", encoding="utf-8") as datei:
for zeile in datei:
print(zeile.strip()) # strip() entfernt \n
CSV-Dateien (Tabellen)
import csv
# Schreiben
personen = [
["Name", "Alter", "Stadt"],
["Tino", 42, "Kirchberg"],
["Anna", 35, "Innsbruck"],
]
with open("personen.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerows(personen)
# Lesen
with open("personen.csv", "r", encoding="utf-8") as f:
reader = csv.DictReader(f)
for zeile in reader:
print(f"{zeile['Name']} wohnt in {zeile['Stadt']}")
11 · Module & Bibliotheken
Module sind fertige Code-Sammlungen. Python hat viele eingebaute Module — und mit pip kannst du externe Bibliotheken installieren.
Eingebaute Module
import math
import random
import datetime
import os
# math — Mathematik
print(math.pi) # 3.14159...
print(math.sqrt(144)) # 12.0
print(math.ceil(3.2)) # 4
print(math.floor(3.9)) # 3
# random — Zufallszahlen
print(random.randint(1, 6)) # Würfeln: 1–6
print(random.choice(["A","B","C"])) # zufälliges Element
print(random.random()) # Zahl zwischen 0 und 1
# datetime — Datum & Zeit
jetzt = datetime.datetime.now()
print(jetzt.strftime("%d.%m.%Y %H:%M")) # 29.05.2026 14:30
# os — Betriebssystem
print(os.getcwd()) # aktueller Ordner
print(os.path.exists("datei.txt")) # prüfe ob Datei existiert
Externe Bibliotheken installieren
pip install requests # HTTP-Anfragen pip install pandas # Datenanalyse pip install pillow # Bildbearbeitung
import requests
antwort = requests.get("https://api.github.com")
print(antwort.status_code) # 200 = OK
daten = antwort.json()
print(daten["current_user_url"])
12 · Fehlerbehandlung
Fehler (Exceptions) können Programme zum Absturz bringen. Mit try/except fängst du sie ab und reagierst sauber.
try:
zahl = int(input("Gib eine Zahl ein: "))
ergebnis = 100 / zahl
print("Ergebnis:", ergebnis)
except ValueError:
print("Fehler: Das ist keine gültige Zahl!")
except ZeroDivisionError:
print("Fehler: Division durch Null!")
except Exception as e:
print(f"Unbekannter Fehler: {e}")
else:
print("Alles hat geklappt!") # nur wenn kein Fehler
finally:
print("Dieser Block läuft immer.") # immer am Ende
Häufige Fehlertypen
| Fehler | Ursache | Beispiel |
|---|---|---|
ValueError | Falscher Wert | int("abc") |
ZeroDivisionError | Division durch 0 | 5 / 0 |
FileNotFoundError | Datei fehlt | open("x.txt") |
IndexError | Index außerhalb | [1,2][5] |
KeyError | Schlüssel fehlt | {}["x"] |
TypeError | Falscher Typ | "5" + 5 |
Eigene Ausnahmen auslösen
def alter_pruefen(alter):
if alter < 0:
raise ValueError("Alter kann nicht negativ sein!")
if alter > 150:
raise ValueError("Unglaubwürdiges Alter!")
return f"Alter {alter} ist gültig."
try:
print(alter_pruefen(-5))
except ValueError as e:
print("Fehler:", e)
# → Fehler: Alter kann nicht negativ sein!
13 · Praxisprojekt: Kontaktbuch
Ein vollständiges Konsolen-Kontaktbuch mit Speicherung in einer JSON-Datei — alle Grundlagen kombiniert.
import json
import os
DATEI = "kontakte.json"
def laden():
"""Kontakte aus JSON-Datei laden."""
if os.path.exists(DATEI):
with open(DATEI, "r", encoding="utf-8") as f:
return json.load(f)
return {}
def speichern(kontakte):
"""Kontakte in JSON-Datei speichern."""
with open(DATEI, "w", encoding="utf-8") as f:
json.dump(kontakte, f, ensure_ascii=False, indent=2)
def hinzufuegen(kontakte):
name = input("Name: ").strip()
tel = input("Telefon: ").strip()
email = input("E-Mail: ").strip()
if not name:
print("Name darf nicht leer sein!")
return
kontakte[name] = {"telefon": tel, "email": email}
speichern(kontakte)
print(f"✅ {name} gespeichert.")
def anzeigen(kontakte):
if not kontakte:
print("Keine Kontakte vorhanden.")
return
print(f"\n{'Name':<20} {'Telefon':<20} {'E-Mail'}")
print("-" * 60)
for name, daten in sorted(kontakte.items()):
print(f"{name:<20} {daten['telefon']:<20} {daten['email']}")
def suchen(kontakte):
suchbegriff = input("Name suchen: ").lower()
gefunden = {n: d for n, d in kontakte.items()
if suchbegriff in n.lower()}
if gefunden:
anzeigen(gefunden)
else:
print("Kein Kontakt gefunden.")
def loeschen(kontakte):
name = input("Welchen Kontakt löschen? ")
if name in kontakte:
del kontakte[name]
speichern(kontakte)
print(f"🗑 {name} gelöscht.")
else:
print("Kontakt nicht gefunden.")
def hauptmenu():
kontakte = laden()
while True:
print("\n=== Kontaktbuch ===")
print("1 — Kontakt hinzufügen")
print("2 — Alle anzeigen")
print("3 — Suchen")
print("4 — Löschen")
print("0 — Beenden")
wahl = input("Auswahl: ")
if wahl == "1": hinzufuegen(kontakte)
elif wahl == "2": anzeigen(kontakte)
elif wahl == "3": suchen(kontakte)
elif wahl == "4": loeschen(kontakte)
elif wahl == "0":
print("Auf Wiedersehen!")
break
else:
print("Ungültige Eingabe.")
if __name__ == "__main__":
hauptmenu()
🎓 Glückwunsch!
Du kennst jetzt alle Python-Grundlagen für Anfänger.