Python Grundlagen für Einsteiger: Einfach lernen, mächtig anwenden

Python ist die beliebteste Programmiersprache der Welt – und das aus gutem Grund. Die Syntax ist so klar wie Pseudocode, der Einstieg gelingt in Stunden statt Wochen, und trotzdem ist Python mächtig genug für Machine Learning, Webentwicklung, Automation und wissenschaftliche Datenanalyse. Ob du dein erstes Skript schreiben oder in die KI-Entwicklung einsteigen möchtest: Python ist der richtige Startpunkt.

Warum Python 2026 unverzichtbar ist

Python wurde 1991 von Guido van Rossum entwickelt und hat sich in den letzten Jahren zum absoluten Allrounder entwickelt. Die Gründe für Pythons Dominanz:

Der Python-Interpreter und die REPL

Python ist eine interpretierte Sprache – dein Code wird nicht vorab kompiliert, sondern Zeile für Zeile zur Laufzeit ausgeführt. Das macht das Experimentieren sehr einfach.

Die REPL (Read-Eval-Print Loop) ist die interaktive Python-Shell. Starte sie einfach mit python oder python3 im Terminal:

$ python3
Python 3.12.4 (main, Jun  6 2024, 18:26:44)
>>> 2 + 2
4
>>> name = "Arthur"
>>> print(f"Hallo, {name}!")
Hallo, Arthur!
>>>

Die REPL ist perfekt zum Ausprobieren. Für längere Programme schreibst du eine .py-Datei und führst sie mit python3 mein_skript.py aus.

Variablen und Datentypen

Python ist dynamisch typisiert – du deklarierst keinen Typ, Python erkennt ihn automatisch. Das nennt sich Duck Typing: Es kommt nicht auf den Typ an, sondern darauf, was ein Objekt kann.

# Grundlegende Typen
name = "Arthur"          # str
alter = 28               # int
groesse = 1.82           # float
aktiv = True             # bool
nichts = None            # NoneType

# Typ prüfen
print(type(name))        # <class 'str'>
print(type(alter))       # <class 'int'>

# f-Strings (seit Python 3.6) – bester Weg für String-Interpolation
nachricht = f"Hallo {name}, du bist {alter} Jahre alt."
print(nachricht)

Seit Python 3.10 kannst du optional Type Hints verwenden, um Typen zu dokumentieren und statische Analyse-Tools wie mypy zu nutzen – das ist in größeren Projekten sehr empfehlenswert.

Datenstrukturen: Listen, Dicts, Tuples und Sets

Python hat vier eingebaute Sammlungstypen, die du täglich verwenden wirst:

Listen (list)

sprachen = ["Python", "JavaScript", "Rust"]
sprachen.append("Go")           # am Ende anfügen
sprachen.insert(0, "Java")      # an Position einfügen
sprachen.remove("Rust")         # Element entfernen
print(sprachen[1])              # "Python" (0-basiert)
print(sprachen[-1])             # letztes Element: "Go"
print(sprachen[1:3])            # Slicing: ["Python", "JavaScript"]

Dictionaries (dict)

person = {
    "name": "Arthur",
    "alter": 28,
    "stadt": "Berlin"
}
print(person["name"])           # "Arthur"
person["beruf"] = "Entwickler"  # neues Feld hinzufügen
print(person.get("plz", "unbekannt"))  # sicherer Zugriff mit Default

Tuples und Sets

# Tuple: unveränderlich (immutable)
koordinaten = (52.52, 13.40)  # Berlin
lat, lon = koordinaten         # Unpacking

# Set: keine Duplikate, ungeordnet
tags = {"python", "web", "api", "python"}  # "python" nur einmal
print(tags)  # {'python', 'web', 'api'}

Kontrollfluss: if, for, while

# if/elif/else
temperatur = 22

if temperatur > 30:
    print("Sehr heiß")
elif temperatur > 20:
    print("Angenehm warm")
else:
    print("Kühl")

# for-Schleife über eine Liste
for sprache in ["Python", "Go", "Rust"]:
    print(f"Ich lerne {sprache}")

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

# while-Schleife
zaehler = 0
while zaehler < 3:
    print(f"Durchlauf {zaehler}")
    zaehler += 1

Python verwendet Einrückung (Indentation) statt geschweifter Klammern, um Code-Blöcke zu definieren. Standard sind 4 Leerzeichen pro Ebene – halte dich konsequent daran.

Funktionen, args und kwargs

Funktionen werden mit def definiert:

def begruesse(name, sprache="Deutsch"):
    if sprache == "Englisch":
        return f"Hello, {name}!"
    return f"Hallo, {name}!"

print(begruesse("Arthur"))              # Hallo, Arthur!
print(begruesse("Alice", "Englisch"))   # Hello, Alice!

# *args: beliebig viele Positionsargumente
def summe(*zahlen):
    return sum(zahlen)

print(summe(1, 2, 3, 4))  # 10

# **kwargs: beliebig viele Schlüsselwort-Argumente
def konfiguration(**einstellungen):
    for key, value in einstellungen.items():
        print(f"{key}: {value}")

konfiguration(debug=True, port=8000, host="localhost")

Python unterstützt auch Lambda-Funktionen für einfache, einzeilige Funktionen: verdopple = lambda x: x * 2.

Module und pip

Python-Code wird in Modulen (einzelne .py-Dateien) und Paketen (Ordner mit __init__.py) organisiert. Die Standardbibliothek ist riesig und enthält Module für alles von HTTP-Requests bis zu regulären Ausdrücken:

import os
import json
from datetime import datetime
from pathlib import Path

# Aktuelles Datum
heute = datetime.now().strftime("%d.%m.%Y")
print(f"Heute ist der {heute}")

# Datei lesen mit pathlib
inhalt = Path("config.json").read_text(encoding="utf-8")
daten = json.loads(inhalt)

pip ist der Paketmanager von Python. Drittanbieter-Pakete installierst du so:

pip install requests          # HTTP-Bibliothek
pip install pandas            # Datenanalyse
pip install fastapi uvicorn   # Web-Framework
pip install pytest            # Testing

List Comprehensions

List Comprehensions sind eine der elegantesten Python-Features – kompaktes Erstellen von Listen aus Iterables:

# Klassische Schreibweise
quadrate = []
for x in range(10):
    quadrate.append(x ** 2)

# List Comprehension – viel kürzer
quadrate = [x ** 2 for x in range(10)]

# Mit Bedingung
gerade_quadrate = [x ** 2 for x in range(10) if x % 2 == 0]
# [0, 4, 16, 36, 64]

# Dict Comprehension
wort_laengen = {wort: len(wort) for wort in ["Python", "Go", "Rust"]}
# {'Python': 6, 'Go': 2, 'Rust': 4}

Datei-Ein- und Ausgabe

# Datei schreiben
with open("ausgabe.txt", "w", encoding="utf-8") as f:
    f.write("Erste Zeile\n")
    f.write("Zweite Zeile\n")

# Datei lesen
with open("ausgabe.txt", "r", encoding="utf-8") as f:
    for zeile in f:
        print(zeile.strip())

# JSON schreiben und lesen
import json

daten = {"name": "Arthur", "punkte": [95, 87, 100]}

with open("daten.json", "w") as f:
    json.dump(daten, f, indent=2)

with open("daten.json", "r") as f:
    geladen = json.load(f)
print(geladen["punkte"])  # [95, 87, 100]

Das with-Statement (Context Manager) sorgt dafür, dass die Datei automatisch geschlossen wird – auch im Fehlerfall. Verwende es immer für Dateioperationen.

Virtuelle Umgebungen mit venv

Jedes Python-Projekt sollte eine eigene virtuelle Umgebung haben – so vermeidest du Konflikte zwischen Paketen verschiedener Projekte:

# Virtuelle Umgebung erstellen
python3 -m venv .venv

# Aktivieren (macOS/Linux)
source .venv/bin/activate

# Aktivieren (Windows)
.venv\Scripts\activate

# Pakete installieren (nur in dieser Umgebung)
pip install fastapi pandas pytest

# Abhängigkeiten sichern
pip freeze > requirements.txt

# Aus requirements.txt installieren (z.B. nach git clone)
pip install -r requirements.txt

Committe niemals den .venv-Ordner in dein Git-Repository – füge ihn zur .gitignore hinzu. Mehr zu Git findest du in unserem Git-Grundlagen-Artikel.

Praktische Einsatzgebiete

Automation und Scripting

Mit os, pathlib, shutil und subprocess automatisierst du Dateioperationen, Batch-Verarbeitung und Systemaufgaben. Das Paket requests macht HTTP-Aufrufe zu APIs trivial. Für komplexere Automation eignen sich Selenium (Browser-Automation) oder Playwright.

Webentwicklung

FastAPI ist der moderne Standard für Python-APIs: async-first, automatische OpenAPI-Dokumentation, hervorragende Performance. Django ist das Schweizer Taschenmesser für vollständige Webanwendungen mit ORM, Admin-Panel und Auth-System. Für REST-APIs in Python ist FastAPI die erste Wahl – eine Verbindung zu REST-API-Grundlagen lohnt sich.

Data Science mit Pandas und NumPy

import pandas as pd
import numpy as np

# CSV laden und analysieren
df = pd.read_csv("verkaufsdaten.csv")
print(df.head())                      # erste 5 Zeilen
print(df["umsatz"].describe())        # Statistiken
monatlich = df.groupby("monat")["umsatz"].sum()
print(monatlich)

Pandas ist für tabellarische Daten, NumPy für numerische Berechnungen. Kombiniere sie mit Matplotlib oder Seaborn für Visualisierungen und mit Jupyter Notebooks für interaktive Analysen.

AI und Machine Learning

Das Python-KI-Ökosystem 2026 ist überwältigend. Die wichtigsten Bibliotheken:

Mit Python und diesen Bibliotheken kannst du Bildklassifikation, Textanalyse, Chatbots und eigene KI-Agenten bauen – ohne tief in Mathematik einsteigen zu müssen.

Häufige Fragen

Python 2 oder Python 3?

Immer Python 3. Python 2 wurde im Januar 2020 offiziell eingestellt und erhält keine Sicherheitsupdates mehr. Alle aktuellen Bibliotheken unterstützen nur noch Python 3. Nutze mindestens Python 3.10, besser 3.12 oder neuer.

Ist Python zu langsam für produktive Anwendungen?

Für I/O-intensive Aufgaben (Webserver, API-Calls, Datenbankabfragen) ist Python mit async-Frameworks wie FastAPI absolut produktionsreif. Für rechenintensive Aufgaben ruft Python oft C/C++-Bibliotheken auf (NumPy, PyTorch) – dort ist die Geschwindigkeit kein Problem. Nur für CPU-intensive Pure-Python-Algorithmen ist Python langsam; dort helfen Cython, Numba oder eine Auslagerung in C-Erweiterungen.

Wie strukturiere ich ein größeres Python-Projekt?

Nutze Pakete (Ordner mit __init__.py), trenne Verantwortlichkeiten in Module und schreibe Tests mit pytest. Für Projekte mit vielen Abhängigkeiten empfiehlt sich Poetry oder uv als moderner Ersatz für pip + venv. Eine pyproject.toml ist der moderne Standard für Projekt-Metadaten.

Soll ich zuerst Python oder JavaScript lernen?

Das hängt von deinem Ziel ab. Für Web-Frontend ist JavaScript unverzichtbar – ein Blick auf TypeScript lohnt sich. Für Data Science, KI, Automation und Backend-Scripting ist Python die bessere erste Sprache: saubere Syntax, direktes Feedback, riesiges Ökosystem. Viele Entwickler lernen beide Sprachen – sie ergänzen sich gut.

Was ist der Unterschied zwischen einer Liste und einem Tuple?

Listen sind veränderlich (mutable) – du kannst Elemente hinzufügen, entfernen und ändern. Tuples sind unveränderlich (immutable) – einmal erstellt, können sie nicht geändert werden. Tuples sind etwas schneller und können als Dictionary-Keys verwendet werden. Nutze Tuples für Daten, die sich nicht ändern sollen (Koordinaten, RGB-Werte, feste Konfigurationen); Listen für Sammlungen, die sich während der Laufzeit ändern.