Python 101
Grundlagen der Programmierung
Was ist Python?
- Einfache und lesbare Programmiersprache
- Fast wie normaler englischer Text
- Perfekt für Anfänger
- Syntax = Rechtschreibung beim Programmieren
Dein erstes Programm
print("Hello, World!")Ausführen: Speichern und F5 drücken in Thonny
Kommentare
# Dies ist ein Kommentar - wird ignoriert
print("Das wird ausgeführt") # Kommentar am Zeilenende
"""
Mehrzeiliger
Kommentar
"""2
3
4
5
6
7
Kommentare helfen dir, Notizen zu machen!
Einrückung ist wichtig
# Richtig ✓
if 5 > 3:
print("Fünf ist größer")
print("Das gehört zum if")
# Falsch ✗
if 5 > 3:
print("Fehler!") # Keine Einrückung!2
3
4
5
6
7
8
Regel: Immer 4 Leerzeichen einrücken
Code wird von oben nach unten gelesen
print("Erste Zeile")
print("Zweite Zeile")
print("Dritte Zeile")2
3
Der Computer liest wie ein Buch: Zeile für Zeile
Fehler erkennen und verstehen
print("Hallo Welt)Fehlermeldung:
SyntaxError: unterminated string literal
^2
Das ^ zeigt, wo der Fehler ist - fehlendes Schlusszeichen!
Häufige Fehlertypen
- SyntaxError: Rechtschreibfehler im Code
- NameError: Unbekannter Name/Variable
- IndentationError: Falsche Einrückung
Wichtig: Fehler sind normal! Lies die Fehlermeldung genau.
Turtle - Zeichnen mit Python 🐢
from turtle import *
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)2
3
4
5
6
7
8
9
Zeichnet ein Quadrat!
Turtle Befehle
forward(zahl)- Vorwärts bewegenback(zahl)- Rückwärts bewegenleft(zahl)/right(zahl)- Drehenup()/down()- Stift heben/senkencolor("farbe")- Farbe ändernhome()- Zurück zum Start
Variablen = Beschriftete Schubladen
name = "Anna"
alter = 16
groesse = 1.65
print(name)
print(alter)2
3
4
5
6
Variablen speichern Werte für später!
Datentypen
# Integer (Ganzzahlen)
x = 42
# Float (Kommazahlen)
pi = 3.14
# String (Text)
name = "Max"
# Boolean (Wahr/Falsch)
ist_wahr = True2
3
4
5
6
7
8
9
10
11
Rechnen mit Python
a = 10
b = 3
print(a + b) # 13 (Addition)
print(a - b) # 7 (Subtraktion)
print(a * b) # 30 (Multiplikation)
print(a / b) # 3.333... (Division)
print(a // b) # 3 (Ganzzahl-Division)
print(a % b) # 1 (Rest)
print(a ** b) # 1000 (Potenz)2
3
4
5
6
7
8
9
10
Vergleichen
x = 5
y = 10
print(x == y) # False (gleich?)
print(x != y) # True (ungleich?)
print(x < y) # True (kleiner?)
print(x > y) # False (größer?)
print(x <= y) # True (kleiner oder gleich?)
print(x >= y) # False (größer oder gleich?)2
3
4
5
6
7
8
9
if - Entscheidungen treffen
alter = 16
if alter >= 18:
print("Du bist volljährig")
elif alter >= 16:
print("Du darfst Mofa fahren")
else:
print("Du bist noch zu jung")2
3
4
5
6
7
8
"Wenn dies, dann das"
Logische Operatoren
alter = 16
hat_fuehrerschein = False
if alter >= 18 and hat_fuehrerschein:
print("Du darfst Auto fahren")
elif alter >= 18 or hat_fuehrerschein:
print("Fast...")
else:
print("Noch nicht")2
3
4
5
6
7
8
9
and, or, not verknüpfen Bedingungen
for-Schleife - Wiederholungen
# Über eine Liste
fruechte = ["Apfel", "Banane", "Kirsche"]
for frucht in fruechte:
print(frucht)
# Zahlen 0 bis 4
for i in range(5):
print(i)
# Zahlen 2, 4, 6, 8
for i in range(2, 10, 2):
print(i)2
3
4
5
6
7
8
9
10
11
12
while-Schleife
zaehler = 0
while zaehler < 5:
print(zaehler)
zaehler += 1
print("Fertig!")2
3
4
5
6
7
Läuft, solange Bedingung wahr ist
break und continue
# break - beendet die Schleife
for i in range(10):
if i == 5:
break
print(i) # 0, 1, 2, 3, 4
# continue - überspringt aktuelle Iteration
for i in range(5):
if i == 2:
continue
print(i) # 0, 1, 3, 42
3
4
5
6
7
8
9
10
11
Funktionen - Code wiederverwenden
def begruessung(name):
print(f"Hallo, {name}!")
begruessung("Anna")
begruessung("Max")2
3
4
5
Funktionen = Rezepte für Code
Funktionen mit Rückgabewert
def addiere(a, b):
return a + b
ergebnis = addiere(5, 3)
print(ergebnis) # 8
summe = addiere(10, 20)
print(summe) # 302
3
4
5
6
7
8
return gibt einen Wert zurück
Listen - Mehrere Werte speichern
zahlen = [1, 2, 3, 4, 5]
fruechte = ["Apfel", "Banane", "Kirsche"]
print(fruechte[0]) # "Apfel" (erstes Element)
print(fruechte[-1]) # "Kirsche" (letztes Element)
fruechte.append("Mango") # Hinzufügen
print(fruechte)2
3
4
5
6
7
8
Listen = Einkaufslisten für Daten
Listen-Methoden
zahlen = [3, 1, 4, 1, 5, 9, 2, 6]
print(len(zahlen)) # 8 (Länge)
print(max(zahlen)) # 9 (Maximum)
print(min(zahlen)) # 1 (Minimum)
print(sum(zahlen)) # 31 (Summe)
zahlen.sort() # Sortieren
print(zahlen)
zahlen.reverse() # Umkehren
print(zahlen)2
3
4
5
6
7
8
9
10
11
12
for-Schleife mit Listen
fruechte = ["Apfel", "Banane", "Kirsche", "Mango"]
for frucht in fruechte:
print(f"Ich mag {frucht}")
# Mit Index
for i in range(len(fruechte)):
print(f"{i}: {fruechte[i]}")2
3
4
5
6
7
8
Dictionaries - Wörterbücher
person = {
"name": "Anna",
"alter": 16,
"stadt": "Berlin"
}
print(person["name"]) # "Anna"
print(person["alter"]) # 16
person["alter"] = 17 # Wert ändern
person["email"] = "anna@example.com" # Neues Paar
print(person)2
3
4
5
6
7
8
9
10
11
12
13
Schlüssel → Wert Paare
Über Dictionaries iterieren
person = {
"name": "Anna",
"alter": 16,
"stadt": "Berlin"
}
# Über Schlüssel-Wert-Paare
for key, value in person.items():
print(f"{key}: {value}")2
3
4
5
6
7
8
9
Strings - Text verarbeiten
text = "Python ist toll"
print(len(text)) # 15 (Länge)
print(text.upper()) # "PYTHON IST TOLL"
print(text.lower()) # "python ist toll"
print(text.replace("toll", "super")) # Ersetzen
print(text.split()) # ["Python", "ist", "toll"]
# Prüfungen
print("Python" in text) # True
print(text.startswith("Py")) # True2
3
4
5
6
7
8
9
10
11
String-Formatting
name = "Anna"
alter = 16
# f-Strings (modern & empfohlen)
text = f"Ich bin {name} und {alter} Jahre alt."
print(text)
# Mit Berechnungen
preis = 19.99
print(f"Der Preis beträgt {preis * 1.19:.2f} €")2
3
4
5
6
7
8
9
10
Benutzereingabe
name = input("Wie heißt du? ")
print(f"Hallo, {name}!")
# Zahlen einlesen
alter = int(input("Wie alt bist du? "))
if alter >= 18:
print("Du bist volljährig")
else:
print("Du bist minderjährig")2
3
4
5
6
7
8
9
10
Wichtig: input() gibt immer einen String zurück!
Fehlerbehandlung
try:
zahl = int(input("Gib eine Zahl ein: "))
ergebnis = 100 / zahl
print(f"Ergebnis: {ergebnis}")
except ValueError:
print("Das war keine gültige Zahl!")
except ZeroDivisionError:
print("Division durch Null geht nicht!")2
3
4
5
6
7
8
Fängt Fehler ab, damit Programm nicht abstürzt
Debugging - Fehler finden 🐛
Debugger in Thonny:
- Käfer-Symbol (🐛) oder
Ctrl+F5 - Step Over (F6) - Nächste Zeile
- Variables-Fenster zeigt Werte
Variablen-Tabelle auf Papier:
x = 5
y = 10
x = x + y # x = 15
y = x - y # y = 52
3
4
Code-Stil: Gute Namen wählen
# Schlecht ✗
x = 42
f = "Anna"
# Gut ✓
alter = 42
vorname = "Anna"
# Variablen: snake_case
meine_variable = 10
# Konstanten: UPPER_CASE
PI = 3.141592
3
4
5
6
7
8
9
10
11
12
13
Aussagekräftige Namen machen Code lesbar!
Live Demo Time! 🚀
Lass uns zusammen programmieren:
- Ein einfaches Ratespiel
- Turtle-Zeichnungen
- Eine Notenliste verwalten
Zusammenfassung
✓ Variablen speichern Werte ✓ if/elif/else für Entscheidungen ✓ for/while für Wiederholungen ✓ Funktionen für wiederverwendbaren Code ✓ Listen für mehrere Werte ✓ Dictionaries für Schlüssel-Wert-Paare ✓ Fehlerbehandlung mit try/except
Üben, üben, üben! 💪
Die besten Programmierer:
- Machen viele Fehler (und lernen daraus)
- Probieren Dinge aus
- Suchen nach Lösungen
- Üben regelmäßig
Jetzt: Übungen in exercises.md!
Fragen?
Denk daran:
- Fehler sind normal und wichtig
- Google/StackOverflow sind deine Freunde
- Jeder hat mal angefangen
- Programmieren lernt man durch TUN
Viel Erfolg! 🎉