Python-Tutorial 

Dieses Tutorial bietet einen umfassenden, praxisnahen Einstieg in Python. Es richtet sich an erwachsene Lernende, die gründlich und strukturiert die Sprache Python von Grund auf lernen oder ihr Wissen vertiefen möchten.

Inhaltsverzeichnis

  1. Was ist Python?
  2. Installation und erste Schritte
  3. Grundlagen: Syntax, Variablen & Datentypen
  4. Benutzereingaben und Ausgabe
  5. Operatoren und Rechnen
  6. Kontrollstrukturen: Bedingungen und Schleifen
  7. Datenstrukturen: Listen, Tupel, Dictionaries, Sets
  8. Funktionen und Argumente
  9. Objektorientierte Programmierung (OOP)
  10. Fehlerbehandlung
  11. Module und Pakete
  12. Dateien lesen und schreiben
  13. Weiterführende Themen
  14. Praxisprojekte und Übungen
  15. Empfohlene Ressourcen

1. Was ist Python?

Python ist eine universelle, leicht verständliche Programmiersprache, die weltweit in Wissenschaft, Wirtschaft, Webentwicklung, Datenanalyse, Machine Learning, Automatisierung und vielen weiteren Bereichen eingesetzt wird.

  • Lesbare Syntax, ideal für Einsteiger und Profis
  • Große Community, viele Bibliotheken (z.B. für Datenanalyse, Web, KI, Grafik, Spiele)
  • Plattformunabhängig (Windows, Mac, Linux)
  • Open Source und kostenlos

2. Installation und erste Schritte

Tipp: Nach der Installation kannst du in der Kommandozeile python --version eingeben, um zu prüfen, ob Python korrekt installiert ist.

3. Grundlagen: Syntax, Variablen & Datentypen

Dein erstes Programm

print("Hallo, Welt!")

print() gibt Text oder Variablen auf dem Bildschirm aus.

Kommentare

# Das ist ein Kommentar
print("Kommentare werden ignoriert")  # Kommentar am Zeilenende

Variablen und Datentypen

name = "Maria"         # String (Text)
alter = 35             # Integer (Ganzzahl)
pi = 3.14159           # Float (Kommazahl)
ist_aktiv = True       # Boolean (Wahr/Falsch)

Python erkennt den Typ automatisch. Mit type(name) kannst du den Typ prüfen:

print(type(name))      # <class 'str'>
print(type(alter))     # <class 'int'>
TypBeispielBeschreibung
String "Hallo" Text
Integer 42 Ganzzahl
Float 3.14 Kommazahl
Boolean True oder False Wahr/Falsch

Typumwandlung (Casting)

zahl = "42"
zahl_int = int(zahl)
print(zahl_int + 10)  # 52

4. Benutzereingaben und Ausgabe

benutzer = input("Wie heißen Sie? ")
print("Willkommen,", benutzer)

input() liest eine Benutzereingabe (immer als String). Für Zahlen musst du umwandeln:

alter = int(input("Wie alt sind Sie? "))
Aufgabe: Schreibe ein Programm, das den Benutzer nach seinem Namen und Alter fragt und eine personalisierte Begrüßung ausgibt.

5. Operatoren und Rechnen

a = 7
b = 3
print(a + b)   # Addition
print(a - b)   # Subtraktion
print(a * b)   # Multiplikation
print(a / b)   # Division (float)
print(a // b)  # Ganzzahl-Division
print(a % b)   # Modulo (Rest)
print(a ** b)  # Potenz

Operatoren können auch mit Strings verwendet werden:

print("Hallo" + " Welt")   # Verkettung
print("Hi! " * 3)          # Wiederholung

6. Kontrollstrukturen: Bedingungen und Schleifen

Bedingungen (if, elif, else)

zahl = int(input("Geben Sie eine Zahl ein: "))
if zahl > 0:
    print("Die Zahl ist positiv.")
elif zahl == 0:
    print("Die Zahl ist null.")
else:
    print("Die Zahl ist negativ.")

Vergleichsoperatoren: == (gleich), != (ungleich), >, <, >=, <=

Logische Operatoren

a = 5
b = 10
if a < 10 and b > 5:
    print("Beide Bedingungen sind erfüllt.")
if a == 5 or b == 5:
    print("Mindestens eine Bedingung ist erfüllt.")
if not a == 7:
    print("a ist nicht 7.")

Schleifen

for-Schleife

for i in range(5):
    print("Durchlauf", i)

range(5) erzeugt die Zahlen 0 bis 4.

while-Schleife

x = 0
while x < 3:
    print("x ist", x)
    x += 1

break und continue

for i in range(10):
    if i == 5:
        break  # Schleife beenden
    if i % 2 == 0:
        continue  # nächsten Schleifendurchlauf
    print(i)
Aufgabe: Schreibe ein Programm, das alle geraden Zahlen von 1 bis 20 ausgibt.

7. Datenstrukturen: Listen, Tupel, Dictionaries, Sets

Listen

farben = ["rot", "blau", "grün"]
print(farben[1])  # 'blau'
farben.append("gelb")
print(farben)
farben[0] = "orange"
del farben[2]
print(farben)
  • Listen sind veränderbar und können verschiedene Datentypen enthalten.
  • Wichtige Methoden: append(), insert(), remove(), pop(), sort(), reverse()

Listen-Komprehension

quadrate = [x**2 for x in range(10)]
print(quadrate)

Tupel

koordinaten = (10, 20)
print(koordinaten[0])
# Tupel sind unveränderbar (immutable)

Dictionaries

person = {"name": "Maria", "alter": 35}
print(person["name"])
person["stadt"] = "Berlin"
for schluessel, wert in person.items():
    print(schluessel, ":", wert)
  • Dictionaries speichern Werte mit Schlüsseln.
  • Wichtige Methoden: keys(), values(), items(), get()

Sets

zahlen = {1, 2, 3, 2}
print(zahlen)  # {1, 2, 3}
zahlen.add(4)
zahlen.remove(2)
print(zahlen)
  • Sets enthalten nur einzigartige Werte.
Aufgabe: Lege eine Liste mit fünf Namen an und gib sie mit einer Schleife einzeln aus.

8. Funktionen und Argumente

def begruessung(name):
    print("Hallo,", name)

begruessung("Maria")

Funktionen helfen, Code zu strukturieren und wiederzuverwenden.

def addiere(a, b=0):
    return a + b

ergebnis = addiere(5, 7)
print(ergebnis)
  • Mit return gibst du einen Wert zurück.
  • Standardwerte für Argumente sind möglich.

Mehrere Rückgabewerte

def rechne(a, b):
    return a + b, a * b

summe, produkt = rechne(3, 4)
print("Summe:", summe, "Produkt:", produkt)

Beliebig viele Argumente

def summiere(*zahlen):
    return sum(zahlen)

print(summiere(1, 2, 3, 4))

Lambda-Funktionen

f = lambda x: x + 1
print(f(5))
Aufgabe: Schreibe eine Funktion, die prüft, ob eine Zahl gerade oder ungerade ist, und entsprechend einen Text zurückgibt.

9. Objektorientierte Programmierung (OOP)

Mit Klassen kannst du eigene Datentypen und Methoden definieren.

class Auto:
    def __init__(self, marke, baujahr):
        self.marke = marke
        self.baujahr = baujahr

    def hupen(self):
        print("Hup Hup!")

mein_auto = Auto("VW", 2020)
print(mein_auto.marke)
mein_auto.hupen()
  • __init__ ist der Konstruktor, self verweist auf das Objekt.
  • Methoden sind Funktionen innerhalb einer Klasse.

Vererbung

class Elektroauto(Auto):
    def __init__(self, marke, baujahr, akku_kapazitaet):
        super().__init__(marke, baujahr)
        self.akku_kapazitaet = akku_kapazitaet

    def lade(self):
        print("Lädt...")

tesla = Elektroauto("Tesla", 2022, 100)
print(tesla.marke, tesla.akku_kapazitaet)
tesla.lade()

Eigenschaften (Properties)

class Person:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, wert):
        self._name = wert

p = Person("Anna")
print(p.name)
p.name = "Maria"
print(p.name)
Aufgabe: Erstelle eine Klasse Buch mit den Eigenschaften titel und autor und einer Methode beschreibung(), die einen Satz wie "Titel von Autor" ausgibt.

10. Fehlerbehandlung

try:
    zahl = int(input("Gib eine Zahl ein: "))
    print(10 / zahl)
except ZeroDivisionError:
    print("Durch 0 teilen geht nicht!")
except ValueError:
    print("Bitte gib eine gültige Zahl ein.")
finally:
    print("Programm beendet.")
  • try ... except: Fehler abfangen
  • finally: Wird immer ausgeführt, egal ob Fehler auftritt oder nicht

Eigene Exceptions

class MeineFehler(Exception):
    pass

try:
    raise MeineFehler("Das ist ein benutzerdefinierter Fehler!")
except MeineFehler as e:
    print(e)

11. Module und Pakete

import math
print(math.sqrt(16))  # Quadratwurzel

from random import randint
print(randint(1, 10))  # Zufallszahl zwischen 1 und 10
  • Mit import bindest du externe Bibliotheken ein.
  • Eigene Module: Speichere Funktionen in einer .py-Datei und importiere sie.

Eigene Module

# datei: hilfsfunktionen.py
def quadriere(x):
    return x * x

# Im Hauptprogramm:
import hilfsfunktionen
print(hilfsfunktionen.quadriere(5))

Installation externer Pakete

pip install requests

Beispiel für die Verwendung eines externen Moduls:

import requests
antwort = requests.get("https://api.github.com")
print(antwort.status_code)

12. Dateien lesen und schreiben

Datei schreiben

with open("test.txt", "w") as f:
    f.write("Hallo Datei!")

Datei lesen

with open("test.txt", "r") as f:
    inhalt = f.read()
    print(inhalt)
  • with sorgt dafür, dass die Datei nach dem Lesen/Schreiben korrekt geschlossen wird.
  • Weitere Modi: "a" (anhängen), "b" (binär), "x" (neu anlegen)

CSV-Dateien

import csv

with open("daten.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["Name", "Alter"])
    writer.writerow(["Maria", 35])

with open("daten.csv", "r") as f:
    reader = csv.reader(f)
    for zeile in reader:
        print(zeile)
Aufgabe: Schreibe ein Programm, das Namen aus einer Datei liest und diese alphabetisch sortiert ausgibt.

13. Weiterführende Themen

  • Listen-Komprehension: [x * 2 for x in range(5)]
  • Generatoren:
    def gen():
        for i in range(3):
            yield i
    
    for zahl in gen():
        print(zahl)
    
  • Dekoratoren:
    def dekorator(funktion):
        def wrapper():
            print("Vorher")
            funktion()
            print("Nachher")
        return wrapper
    
    @dekorator
    def sag_hallo():
        print("Hallo!")
    
    sag_hallo()
    
  • Reguläre Ausdrücke:
    import re
    text = "abc 123"
    muster = re.search(r"\d+", text)
    print(muster.group())
    
  • Datenanalyse mit pandas, Visualisierung mit matplotlib
  • Webentwicklung mit flask oder django
  • Automatisierung mit os, shutil, subprocess
  • Unit-Tests mit unittest

14. Praxisprojekte und Übungen

  • Schreibe einen Taschenrechner, der Grundrechenarten unterstützt.
  • Erstelle ein Quiz mit mehreren Fragen und Auswertung.
  • Baue ein Text-Adventure-Spiel.
  • Automatisiere das Umbenennen von Dateien in einem Ordner.
  • Lese Daten aus einer CSV-Datei und erstelle eine Statistik.
  • Erstelle eine kleine Web-App mit Flask.
Aufgabe: Wähle eines der oben genannten Projekte aus und setze es Schritt für Schritt um. Dokumentiere deinen Code und versuche, eigene Erweiterungen einzubauen.
Tipp: Übe regelmäßig, lies Fehlermeldungen aufmerksam und probiere eigene kleine Projekte aus. Die Python-Community ist groß und hilfsbereit – nutze Foren wie Stack Overflow für Fragen.

Viel Erfolg beim Lernen und Programmieren mit Python!