Python für Einsteiger: Der pragmatische Einstieg in die Programmierung
Python ist seit Jahren eine der meistgenutzten Programmiersprachen der Welt – und das aus gutem Grund. Die Syntax ist lesbar, die Einstiegshürde niedrig, und trotzdem reicht das Ökosystem von kleinen Skripten bis zu großen KI- und Webanwendungen. Dieser Artikel zeigt den pragmatischen Einstieg: Was Python ausmacht, wie man es installiert und die ersten sinnvollen Programme schreibt.
Warum Python?
Python wurde 1991 von Guido van Rossum veröffentlicht und setzt von Anfang an auf Lesbarkeit. Einrückungen strukturieren den Code statt geschweifter Klammern – das erzwingt sauberen Stil. Drei Eigenschaften machen Python besonders attraktiv:
- Große Standardbibliothek: Dateien, Netzwerk, JSON, Datenbanken – vieles ist ohne Zusatzpakete nutzbar.
- Riesiges Ökosystem: Mit
pipinstalliert man über 500.000 Pakete, von Web-Frameworks (Django, FastAPI) bis zu Datenanalyse (pandas) und KI (PyTorch, Transformers). - Breite Einsatzgebiete: Automatisierung, Web-APIs, Datenauswertung, Machine Learning und DevOps-Skripte.
Installation und erste Schritte
Unter Linux ist Python 3 meist vorinstalliert – prüfen mit:
python3 --version
Fehlt es, installiert man es über den Paketmanager (Debian/Ubuntu: sudo apt install python3 python3-pip, Arch: sudo pacman -S python python-pip). Unter Windows lädt man den Installer von python.org und aktiviert beim Installieren die Option „Add Python to PATH".
Das erste Programm als Datei hallo.py:
#!/usr/bin/env python3
name = input("Wie heißt du? ")
print(f"Hallo {name}, willkommen bei Python!")
Ausführen mit python3 hallo.py. Die f-Zeichenkette setzt Variablen direkt in den Text – eine der elegantesten Python-Eigenschaften.
Variablen, Datentypen und Kontrollfluss
Python ist dynamisch typisiert: Variablen brauchen keine Typdeklaration.
alter = 30 # int
name = "Michael" # str
groesse = 1.82 # float
ist_admin = True # bool
hobbys = ["Linux", "KI"] # Liste
if alter >= 18 and ist_admin:
print("Zugriff erlaubt")
for hobby in hobbys:
print(f"- {hobby}")
Listen, Tupel, Dictionaries und Mengen decken die meisten Datenstrukturen ab. Ein Dictionary (ähnlich einer JSON-Struktur):
server = {"name": "web01", "cpu": 4, "ram_gb": 16}
print(server["name"])
server["ram_gb"] = 32
Funktionen und Module
Funktionen kapseln Logik und machen Code wiederverwendbar:
def quadrat(x):
"""Berechnet das Quadrat einer Zahl."""
return x * x
print(quadrat(7)) # 49
Eigene Module sind einfach Python-Dateien. Der Import funktioniert über den Dateinamen ohne Endung:
import quadratmodul # lädt quadratmodul.py
from quadratmodul import quadrat
Virtuelle Umgebungen – der wichtigste Reflex
Pro Projekt eine eigene Umgebung: So kollidieren Paketversionen nicht. Ab Python 3.3 ist venv an Bord:
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# Windows: .venv\Scripts\activate
pip install requests
Die aktivierte Umgebung erkennt man am Präfix (.venv) in der Shell. Verlassen mit deactivate. In Produktion und CI/CD sind virtuelle Umgebungen oder Container (Docker) Pflicht, damit Builds reproduzierbar bleiben.
Praxisbeispiel: Web-Request mit requests
import requests
antwort = requests.get("https://api.github.com", timeout=10)
if antwort.status_code == 200:
daten = antwort.json()
print(f"API läuft: {daten.get('current_user_url')}")
else:
print(f"Fehler: {antwort.status_code}")
Das Muster – Request, Status prüfen, JSON parsen – wiederholt sich in unzähligen Automatisierungen. Zusammen mit schedule oder Cron lassen sich daraus vollständige Monitoring- und Reporting-Skripte bauen (siehe auch Systemadministration).
Typische Anfängerfehler und wie man sie vermeidet
- Einrückung mischen: Nie Tabs und Leerzeichen kombinieren; der Editor sollte Tabs in Leerzeichen umwandeln.
- Pakete global installieren: Immer
venvverwenden – sonst „funktioniert es auf meinem Rechner, aber nicht auf dem Server". - Ausnahmen verschlucken: Ein nacktes
except:versteckt Fehler. Besser:except requests.RequestException as e:und den Fehler loggen. - Python 2 denken:
printist eine Funktion, Division/liefert Float. Moderner Code zielt auf Python 3.10+.
Dateien lesen und schreiben – die Basis jeder Automatisierung
Kaum ein Skript kommt ohne Dateizugriff aus. Python macht das angenehm kurz:
# Datei zeilenweise lesen
with open("server.log", encoding="utf-8") as f:
for zeile in f:
if "ERROR" in zeile:
print(zeile.strip())
# Datei schreiben
with open("bericht.txt", "w", encoding="utf-8") as f:
f.write("Ergebnis: OK\n")
Das with-Konstrukt schließt die Datei automatisch – auch bei Fehlern. Für strukturierte Daten ist JSON der Standard:
import json
daten = {"server": "web01", "status": "online"}
with open("status.json", "w", encoding="utf-8") as f:
json.dump(daten, f, indent=2)
with open("status.json", encoding="utf-8") as f:
geladen = json.load(f)
print(geladen["status"])
Dieses Muster – Logs durchsuchen, Ergebnisse als JSON ablegen – deckt einen großen Teil der täglichen Server-Automatisierung ab. Kombiniert mit schedule oder Cron entstehen daraus vollwertige Report- und Monitoring-Skripte.
Fehler behandeln statt abstürzen
Produktiver Code fängt Fehler gezielt ab:
try:
antwort = requests.get(url, timeout=10)
antwort.raise_for_status()
except requests.Timeout:
print("Zeitüberschreitung – Server antwortet nicht")
except requests.HTTPError as e:
print(f"HTTP-Fehler: {e.response.status_code}")
else:
print("Erfolgreich geladen")
Die Regel: So spezifisch wie möglich fangen, den Fehler loggen, und dem Nutzer eine verständliche Meldung geben. Ein pauschales except Exception am Ende eines Skripts ist nur als letztes Auffangnetz akzeptabel.
Weiterführende Schritte
Wer Python ernsthaft einsetzen will, sollte als Nächstes Web-APIs mit FastAPI oder Flask bauen, Daten mit pandas auswerten oder sich der Automatisierung von Serveraufgaben widmen. Für die Arbeit mit Sprachmodellen und KI-Agenten ist Python ohnehin die dominierende Sprache – dazu mehr unter KI & Automatisierung.
Verwandte Artikel: PHP für Webentwicklung · Linux-Systemadministration · KI & Automatisierung