SemaTrain Logo Ein Fachportal von SemaTrain

Python Syntax & moderne Sprachfeatures

Sie bauen das Fundament: Python-Syntax, Datentypen, Kontrollfluss und Funktionen – plus moderne Features wie f-Strings und Comprehensions im SemaTrain-Schulungskontext.

Hinweis: Werte in Codebeispielen sind Beispieldaten (didaktisch, nicht verbindlich).

Python Schulung – Kursbezug

Dieses Kapitel ist Teil des Lernpfads zur Python Schulung. Termine & Buchung laufen über SemaTrain.de.

Hinweis: Werte in Beispielen sind Beispieldaten – Fokus liegt auf Syntax/Logik.

Merksatz: In Python ist Einrückung Syntax. Wenn die Einrückung stimmt, sind viele Fehler schon weg.

Worum geht’s?

Lehr-/Lernziele

Nach diesem Kapitel können Sie …

Wie Sie die Ziele erreichen: Beispiele nutzen Kurs-/Schulungsdaten (Beispielwerte). Quiz prüft LZ1–LZ4. Praxis & Mini-Projekt zwingen Sie zu sauberer Ausgabe + Logik.

Syntax-Basics: Einrückung, Kommentare, Variablen

1) Blöcke per Einrückung

Keine geschweiften Klammern – der Block ist die Einrückung.

Indentation (Blockstruktur) (Python)
ist_online = True

if ist_online:
    print("Format: Online")
    print("Ort: remote")
else:
    print("Format: Praesenz")
    print("Ort: Hamburg")

print("Ende")

2) Kommentare & Variablen (Kurskontext)

  • # für Kommentare
  • Benennung: snake_case
  • Beispieldaten: Kurs/Format/Dauer/Preis
Variablen & Kommentare (Beispieldaten) (Python)
# Beispielwerte (nicht verbindlich)
anbieter = "SemaTrain"
kurs_name = "Python Schulung"
format = "Online"      # "Online" oder "Praesenz"
ort = "Hamburg"
dauer_tage = 3
preis_euro = 1490.00

ist_online = (format == "Online")

Datentypen im Überblick

Kernidee: Werte haben Typen – Sie prüfen/konvertieren gezielt.

Typen, Listen & Dicts (Kurskontext) (Python)
dauer_tage = 3                 # int
preis_euro = 1490.00           # float
kurs_name = "Python Schulung"  # str
ist_online = True              # bool

tage = [1, 2, 3]               # list
kurs = {"name": kurs_name, "format": "Online"}  # dict

print(type(dauer_tage), type(preis_euro), type(kurs_name), type(ist_online))
print(type(tage), type(kurs))
Typumwandlung (häufig)
int()/float() Konvertierung (Python)
teilnehmer_text = "12"
teilnehmer_anzahl = int(teilnehmer_text)

preis_text = "19.90"
preis = float(preis_text)

print(teilnehmer_anzahl + 1, preis * 2)

Tipp: Konvertierung immer dort machen, wo Daten „reinkommen“ (Datei, Formular, API).

Kontrollstrukturen: if / for / while

if / elif / else (Regel)

if/elif/else (Punkte → Note) (Python)
punkte = 78  # Beispielwert

if punkte >= 90:
    note = "sehr gut"
elif punkte >= 75:
    note = "gut"
elif punkte >= 60:
    note = "bestanden"
else:
    note = "nicht bestanden"

print(note)

for / while (Tage)

for & while (Kurs-Tage / Uebungen) (Python)
dauer_tage = 3

for tag in range(1, dauer_tage + 1):
    print(f"Tag {tag}: Inhalte & Uebungen")

offene_uebungen = 3
while offene_uebungen > 0:
    offene_uebungen -= 1
print("Fertig")

Funktionen: Parameter, Rückgabe, Defaults

def, return, Default-Parameter (Beispielpreis) (Python)
def rabatt_berechnen(preis_euro, prozent=10):
    return preis_euro * (1 - prozent / 100)

preis = 1490.00
preis_mit_standardrabatt = rabatt_berechnen(preis)       # Default 10%
preis_mit_15 = rabatt_berechnen(preis, 15)               # explizit

print(preis_mit_standardrabatt, preis_mit_15)

Moderne Sprachfeatures (praxisnah)

f-Strings (Ausgabe)

f-Strings (Kursausgabe) (Python)
anbieter = "SemaTrain"
kurs_name = "Python Schulung"
dauer_tage = 3
format = "Online"

print(f"{anbieter}: {kurs_name} | {format} | Dauer: {dauer_tage} Tage")

Comprehensions (Listen/Dicts)

List/Dict-Comprehensions (Tagesplan) (Python)
tage = list(range(1, 6))  # 1..5 (Beispiel)
gerade_tage = [tag for tag in tage if tag % 2 == 0]
tagesplan = {tag: f"Tag {tag}: Inhalte & Uebungen" for tag in tage}

print(gerade_tage)
print(tagesplan[3])

Praxis (Mini-Aufgabe)

Sie üben Listen + Filter + Ausgabe – mit deutschen Variablen und f-Strings.

  1. Erstellen Sie eine Liste zahlen von 1 bis 20.
  2. Filtern Sie alle geraden Zahlen in gerade_zahlen.
  3. Berechnen Sie die Quadrate in quadrate.
  4. Geben Sie alles per f-String aus.
Lösungsvorschlag anzeigen
Lösung: Filter + Quadrate + f-String (Python)
zahlen = list(range(1, 21))
gerade_zahlen = [z for z in zahlen if z % 2 == 0]
quadrate = [z * z for z in gerade_zahlen]

print(f"Gerade Zahlen: {gerade_zahlen}")
print(f"Quadrate: {quadrate}")
Typische Stolperfallen
  • IndentationError: Tabs vs. Spaces → am besten überall 4 Spaces.
  • Strings + Zahlen: erst konvertieren (int(), float()).
  • = vs ==: Zuweisung vs. Vergleich.
  • Lesbarkeit: lieber klare Namen (kurs_name, dauer_tage) statt x/y.

Kurz-Takeaways

Quiz: Syntax & Sprachfeatures (SemaTrain-Kontext)

1. (LZ1) Was definiert in Python einen Codeblock?

2. (LZ2) Welche Typumwandlung macht aus dem String "12" eine Zahl?

3. (LZ3) Welche Aussage ist korrekt?

4. (LZ4) Wofür ist ein f-String gedacht?

Praxisaufgabe

Mini-Projekt: Kurs-Planer (Preis, Rabatt, Auswertung)

Sie bauen einen kleinen Kurs-Planer mit Beispieldaten: mehrere Kursoptionen, Filter/Regeln, Preisberechnung und Ausgabe als Tabelle (Konsole).

Beitrag zu den Lehr-/Lernzielen:
LZ2 (Typen, Listen/Dicts, Konvertierung)   LZ3 (if/for, Funktionen)   LZ4 (f-Strings, Comprehensions).

Aufgabe

Lösung anzeigen
Lösung: Kurs-Planer (Listen/Dicts, Regeln, Ausgabe) (Python)
def endpreis(preis_euro: float, rabatt_prozent: int) -> float:
    # Validierung (LZ3)
    if rabatt_prozent < 0 or rabatt_prozent > 30:
        raise ValueError("rabatt_prozent muss zwischen 0 und 30 liegen")
    return preis_euro * (1 - rabatt_prozent / 100)


anbieter = "SemaTrain"
kurs_name = "Python Schulung"

# (LZ2) Liste von Dicts (Beispieldaten)
kurse = [
    {"standort": "Hamburg", "format": "Praesenz", "dauer_tage": 3, "preis_euro": 1490.00},
    {"standort": "Berlin",  "format": "Online",   "dauer_tage": 3, "preis_euro": 1390.00},
    {"standort": "Koeln",   "format": "Online",   "dauer_tage": 2, "preis_euro":  990.00},
    {"standort": "Muenchen","format": "Praesenz", "dauer_tage": 2, "preis_euro": 1190.00},
]

# (LZ4) Comprehension: alle Online-Kurse filtern
online_kurse = [k for k in kurse if k["format"] == "Online"]

# (LZ3) Regel: Online & dauer_tage >= 3 => 10% Rabatt
def rabatt_regel(kurs: dict) -> int:
    ist_online = (kurs["format"] == "Online")
    if ist_online and kurs["dauer_tage"] >= 3:
        return 10
    return 0

# (LZ3/LZ4) Auswertung bauen
auswertung = []
for k in kurse:
    rabatt = rabatt_regel(k)
    preis = float(k["preis_euro"])
    dauer = int(k["dauer_tage"])
    end = endpreis(preis, rabatt)
    tagespreis = end / dauer

    auswertung.append({
        "standort": k["standort"],
        "format": k["format"],
        "dauer_tage": dauer,
        "rabatt_prozent": rabatt,
        "endpreis": end,
        "tagespreis": tagespreis,
    })

# Bonus: beste Option = niedrigster Tagespreis
beste = min(auswertung, key=lambda x: x["tagespreis"])

print(f"{anbieter} | {kurs_name}")
print("-" * 72)
print(f"{'Standort':10} {'Format':9} {'Tage':>4} {'Rabatt':>6} {'Endpreis':>10} {'/Tag':>10}  Hinweis")
print("-" * 72)

for a in auswertung:
    hinweis = "BESTE" if a["standort"] == beste["standort"] and a["format"] == beste["format"] and a["dauer_tage"] == beste["dauer_tage"] else ""
    print(
        f"{a['standort']:10} {a['format']:9} {a['dauer_tage']:>4} "
        f"{a['rabatt_prozent']:>5}% {a['endpreis']:>10.2f} {a['tagespreis']:>10.2f}  {hinweis}"
    )

print("\nOnline-Kurse (gefiltert):", [k["standort"] for k in online_kurse])