# Python kennt verschiedene Datentypen
alter = 18# int (Ganzzahl)
preis = 19.95# float (Fliesskommazahl)
name = "Max Mustermann"# str (String)
ist_student = True# bool (Boolean)
Python erkennt Datentypen automatisch (dynamische Typisierung). Die wichtigsten Typen sind int, float, str und bool.
2. Kommentare
Verschiedene Arten von Kommentaren
# Das ist ein einzeiliger Kommentar# Mehrere einzeilige Kommentare# können auch untereinander stehen"""
Das ist ein mehrzeiliger Kommentar
oder auch Docstring genannt.
Wird oft für Dokumentation verwendet.
"""defbeispiel_funktion():
"""Diese Funktion macht etwas Tolles."""pass
Kommentare helfen, Code zu erklären. Verwende # für einzeilige und """...""" für mehrzeilige Kommentare.
3. Typumwandlung (Casting)
Zwischen Datentypen konvertieren
# String zu Zahl
text = "25"
zahl = int(text) # 25 (als Ganzzahl)
kommazahl = float(text) # 25.0 (als Float)# Zahl zu String
alter = 18
text = str(alter) # "18" (als String)# Zu Booleanprint(bool(1)) # Trueprint(bool(0)) # Falseprint(bool("")) # False (leerer String)print(bool("Text")) # True
Mit int(), float(), str() und bool() können Datentypen umgewandelt werden.
4. Operatoren
Arithmetische Operatoren
a = 10
b = 3print(a + b) # Addition: 13print(a - b) # Subtraktion: 7print(a * b) # Multiplikation: 30print(a / b) # Division: 3.333...print(a // b) # Ganzzahlige Division: 3print(a % b) # Modulo (Rest): 1print(a ** b) # Potenz: 1000
Vergleichsoperatoren
x = 5
y = 10print(x == y) # Gleich: Falseprint(x != y) # Ungleich: Trueprint(x < y) # Kleiner: Trueprint(x > y) # Grösser: Falseprint(x <= y) # Kleiner oder gleich: Trueprint(x >= y) # Grösser oder gleich: False
Logische Operatoren
a = True
b = Falseprint(a and b) # UND: Falseprint(a or b) # ODER: Trueprint(not a) # NICHT: False# Praktisches Beispiel
alter = 20if alter >= 18and alter < 65:
print("Erwachsen und im Arbeitsleben")
5. Boolean-Logik
Wahrheitswerte verstehen
# Werte die als False gelten (Falsy)print(bool(0)) # Falseprint(bool("")) # False (leerer String)print(bool([])) # False (leere Liste)print(bool(None)) # False# Werte die als True gelten (Truthy)print(bool(1)) # Trueprint(bool("Text")) # Trueprint(bool([1, 2])) # True# Praktische Verwendung
name = input("Dein Name: ")
if name: # Prüft ob String nicht leer istprint(f"Hallo {name}!")
else:
print("Du hast keinen Namen eingegeben")
In Python können viele Werte als True oder False interpretiert werden. Das nennt man "Truthy" und "Falsy".
6. Ein- und Ausgabe
Ausgabe mit print()
# Konsolenausgabeprint("Hallo du da!")
print("Mein erstes Python Programm")
print("Ich bin", 18, "Jahre alt")
# Mit separators und endprint("A", "B", "C", sep="-") # A-B-Cprint("Hallo", end=" ")
print("Welt") # Hallo Welt (auf einer Zeile)
Ausgabe: Hallo du da! Mein erstes Python Programm Ich bin 18 Jahre alt A-B-C Hallo Welt
Eingabe mit input()
# Benutzereingabe
name = input("Wie heisst du? ")
print(f"Hallo {name}!")
alter = int(input("Wie alt bist du? "))
print(f"In 5 Jahren bist du {alter + 5} Jahre alt")
Mit input() liest man Eingaben vom Benutzer. Das Ergebnis ist immer ein String und muss ggf. mit int() oder float() konvertiert werden.
7. If-Else Bedingungen
Einfache Verzweigungen
punkte = 85if punkte >= 90:
print("Sehr gut!")
elif punkte >= 70:
print("Gut!")
else:
print("Mehr üben!")
Ausgabe: Gut!
Python verwendet Einrückungen (4 Leerzeichen) statt Klammern. elif ist die Abkürzung für "else if".
🎮 Interaktive Demo
Klicke auf den Button!
8. For-Schleife
Wiederholung mit for
# Zählen von 1 bis 5for i inrange(1, 6):
print(i)
# Über eine Liste iterieren
fruechte = ["Apfel", "Banane", "Orange"]
for frucht in fruechte:
print(f"Ich mag {frucht}")
Ausgabe: 1 2 3 4 5 Ich mag Apfel Ich mag Banane Ich mag Orange
🎮 Interaktive Demo
Klicke auf den Button!
9. While-Schleife
Wiederholung mit Bedingung
# Countdown
zahl = 5while zahl > 0:
print(zahl)
zahl -= 1print("Start!")
Ausgabe: 5 4 3 2 1 Start!
Die while-Schleife läuft so lange, wie die Bedingung True ist. Achte darauf, dass die Bedingung irgendwann False wird!
10. Break und Continue
Schleifenkontrolle
# break: Schleife sofort beendenfor i inrange(1, 11):
if i == 5:
breakprint(i) # Gibt 1,2,3,4 ausprint("\n---\n")
# continue: Aktuelle Iteration überspringenfor i inrange(1, 6):
if i == 3:
continueprint(i) # Gibt 1,2,4,5 aus (3 wird übersprungen)
Ausgabe: 1 2 3 4 --- 1 2 4 5
break beendet die Schleife komplett, continue springt zur nächsten Iteration.
11. pass und None
Platzhalter im Code
# pass: Macht nichts, ist nur ein Platzhalterdeftodo_funktion():
pass# Wird später implementiertfor i inrange(5):
pass# Leere SchleifeifTrue:
pass# Leerer if-Block# None: Repräsentiert "Nichts" oder "kein Wert"
ergebnis = Nonedefgibt_nichts_zurueck():
print("Hallo")
# return None ist implizit
x = gibt_nichts_zurueck()
print(x) # Noneif x isNone:
print("x hat keinen Wert")
pass ist ein Platzhalter wenn Python Code erwartet. None repräsentiert das Fehlen eines Wertes.
Tupel sind unveränderliche Listen. Sets enthalten keine Duplikate und sind schnell bei Mitgliedschaftstests.
16. Funktionen
Eigene Funktionen definieren
# Funktion ohne Parameterdefgruesse():
print("Hallo!")
# Funktion mit Parametern und Rückgabewertdefaddiere(a, b):
return a + b
# Mit Standardwertendefbegruessung(name="Gast"):
print(f"Hallo {name}!")
# Funktionen aufrufengruesse() # Hallo!
ergebnis = addiere(5, 3)
print(ergebnis) # 8begruessung() # Hallo Gast!begruessung("Max") # Hallo Max!
Funktionen helfen, Code zu strukturieren und wiederzuverwenden. Mit def werden Funktionen definiert.
17. Scope (Geltungsbereich)
Lokale und globale Variablen
# Globale Variable
x = 10deffunktion1():
# Lokale Variable (nur in der Funktion sichtbar)
y = 5print(f"Innen - x: {x}, y: {y}")
funktion1()
print(f"Aussen - x: {x}")
# print(y) # Fehler! y existiert hier nicht# Global-Keyword verwenden
counter = 0defzaehle():
global counter # Zugriff auf globale Variable
counter += 1print(f"Counter: {counter}")
zaehle() # Counter: 1zaehle() # Counter: 2
Variablen haben einen Geltungsbereich. Lokale Variablen existieren nur innerhalb der Funktion, globale überall.
18. Enumerate und Zip
Nützliche Funktionen für Iterationen
# enumerate: Index mitführen
fruechte = ["Apfel", "Banane", "Orange"]
for index, frucht inenumerate(fruechte):
print(f"{index}: {frucht}")
# 0: Apfel# 1: Banane# 2: Orange# Mit Start-Indexfor nr, frucht inenumerate(fruechte, start=1):
print(f"{nr}. {frucht}")
# zip: Mehrere Listen kombinieren
namen = ["Max", "Anna", "Tom"]
alter = [18, 20, 19]
for name, age inzip(namen, alter):
print(f"{name} ist {age} Jahre alt")
enumerate() gibt Index und Wert zurück. zip() kombiniert mehrere Listen element-weise.
19. String-Formatierung
Verschiedene Formatierungsmethoden
name = "Max"
alter = 18
preis = 19.99# 1. F-Strings (modern, empfohlen)print(f"Ich bin {name} und {alter} Jahre alt")
print(f"Preis: {preis:.2f} CHF") # 2 Dezimalstellen# 2. format() Methodeprint("Ich bin {} und {} Jahre alt".format(name, alter))
print("Ich bin {0} und {1} Jahre alt".format(name, alter))
print("Ich bin {n} und {a} Jahre alt".format(n=name, a=alter))
# 3. %-Formatierung (älter)print("Ich bin %s und %d Jahre alt" % (name, alter))
# Nützliche Formatierungenprint(f"{name:10}") # Linksbündig, 10 Zeichenprint(f"{name:>10}") # Rechtsbündigprint(f"{name:^10}") # Zentriert
F-Strings sind die modernste und lesbarste Art der Formatierung in Python.
20. String-Methoden
Wichtige String-Operationen
text = " Python ist cool! "print(text.upper()) # " PYTHON IST COOL! "print(text.lower()) # " python ist cool! "print(text.strip()) # "Python ist cool!" (ohne Leerzeichen)print(text.replace("cool", "super"))
print(text.split()) # ['Python', 'ist', 'cool!']print(len(text)) # 21# Weitere nützliche Methodenprint("Python".startswith("Py")) # Trueprint("Python".endswith("on")) # Trueprint("123".isdigit()) # Trueprint("-".join(["a", "b", "c"])) # "a-b-c"
Strings haben viele nützliche Methoden. F-Strings (f"") sind die moderne Art der Formatierung.
21. Listen-Comprehensions
Elegante Listen erstellen
# Traditioneller Weg
quadrate = []
for i inrange(1, 6):
quadrate.append(i ** 2)
# Mit List Comprehension
quadrate = [i ** 2for i inrange(1, 6)]
print(quadrate) # [1, 4, 9, 16, 25]# Mit Bedingung
gerade = [x for x inrange(10) if x % 2 == 0]
print(gerade) # [0, 2, 4, 6, 8]# Verschachtelt (Matrix)
matrix = [[i*j for j inrange(3)] for i inrange(3)]
print(matrix)
List Comprehensions sind eine kompakte Art, Listen zu erstellen. Sehr pythonisch!
Lambda-Funktionen sind kurze, einzeilige Funktionen ohne Namen. Nützlich für einfache Operationen mit map(), filter() etc.
23. Module und Imports
Externe Module verwenden
# Gesamtes Modul importierenimport random
zufallszahl = random.randint(1, 10)
# Spezifische Funktionen importierenfrom math import sqrt, pi
wurzel = sqrt(16) # 4.0print(pi) # 3.141592...# Mit Alias importierenimport datetime as dt
heute = dt.date.today()
# Alle Funktionen importieren (nicht empfohlen)from math import *
Python hat viele eingebaute Module. Mit import können zusätzliche Funktionen geladen werden.
24. Fehlerbehandlung
Try-Except Blöcke
# Fehler abfangentry:
zahl = int(input("Gib eine Zahl ein: "))
ergebnis = 10 / zahl
print(f"Ergebnis: {ergebnis}")
except ValueError:
print("Das ist keine gültige Zahl!")
except ZeroDivisionError:
print("Division durch 0 nicht möglich!")
except Exception as e:
print(f"Ein Fehler ist aufgetreten: {e}")
finally:
print("Programm beendet")
Mit try-except können Fehler abgefangen werden, ohne dass das Programm abstürzt. finally wird immer ausgeführt.
25. Datei-Operationen
Dateien lesen und schreiben
# Datei schreibenwithopen("test.txt", "w") as datei:
datei.write("Hallo Welt!\n")
datei.write("Python macht Spass!")
# Datei lesenwithopen("test.txt", "r") as datei:
inhalt = datei.read()
print(inhalt)
# Zeile für Zeile lesenwithopen("test.txt", "r") as datei:
for zeile in datei:
print(zeile.strip())
# An Datei anhängenwithopen("test.txt", "a") as datei:
datei.write("\nNeue Zeile")
Das with Statement sorgt dafür, dass Dateien automatisch geschlossen werden. Modi: "r"=lesen, "w"=schreiben, "a"=anhängen.
26. Klassen und Objekte
Objektorientierte Programmierung
classPerson:
def__init__(self, name, alter):
self.name = name
self.alter = alter
defvorstellen(self):
print(f"Ich bin {self.name} und {self.alter} Jahre alt")
defgeburtstag(self):
self.alter += 1print(f"Happy Birthday! Jetzt {self.alter} Jahre")
# Objekt erstellen
person1 = Person("Max", 18)
person1.vorstellen()
person1.geburtstag()
Klassen sind Baupläne für Objekte. __init__ ist der Konstruktor, self bezieht sich auf das Objekt selbst.