it-praxisportal/lehrpfad_1_grundlagen/03_ein_und_ausgabe/musterloesung.py

58 lines
2.6 KiB
Python

"""
Kapitel G03: Interaktive Ein- & Ausgabe (Schulabgleich 07.0)
============================================================
Musterlösung mit sauberen f-Strings, Typkonvertierungen und Formatangaben.
"""
# ==============================================================================
# TODO 1: Begrüßungstext mit f-String
# ==============================================================================
def begruessungs_text(name: str, stadt: str) -> str:
"""Gibt einen freundlichen Begrüßungstext mit f-String zurück."""
return f"Hallo {name}, herzlich willkommen in {stadt}!"
# ==============================================================================
# TODO 2: Alter in Tagen berechnen
# ==============================================================================
def berechne_alter_in_tagen(jahre: int) -> int:
"""Berechnet das ungefähre Alter in Tagen (365 Tage pro Jahr)."""
return jahre * 365
# ==============================================================================
# TODO 3: Rechnungsposten formatieren
# ==============================================================================
def formatiere_rechnungsposten(artikel: str, anzahl: int, einzelpreis: float) -> str:
"""Formatiert einen Rechnungsposten mit 2 Nachkommastellen für Preise."""
gesamtpreis = anzahl * einzelpreis
return f"{anzahl}x {artikel} à {einzelpreis:.2f} € = {gesamtpreis:.2f} €"
# ==============================================================================
# TODO 4: Steckbrief mit BMI-Berechnung
# ==============================================================================
def steckbrief(name: str, groesse_m: float, gewicht_kg: float) -> str:
"""Berechnet den BMI und gibt einen formatierten Steckbrief zurück."""
bmi = gewicht_kg / (groesse_m ** 2)
return f"Steckbrief: {name} | Größe: {groesse_m:.2f} m | Gewicht: {gewicht_kg:.1f} kg | BMI: {bmi:.1f}"
# ==============================================================================
# Interaktives Hauptprogramm
# ==============================================================================
if __name__ == "__main__":
print("=" * 60)
print("💬 INTERAKTIVE EIN- & AUSGABE (MUSTERLÖSUNG)")
print("=" * 60)
# 1. Demonstration von print() Parametern:
print("Python", "ist", "klasse!", sep=" - ")
print("Lade Daten", end="... ")
print("Fertig!\n")
# 2. Demonstration der Funktionen:
print(begruessungs_text("Anna", "Wien"))
print(f"18 Jahre entsprechen ca. {berechne_alter_in_tagen(18)} Tagen.")
print(formatiere_rechnungsposten("Kaffee", 3, 2.5))
print(steckbrief("Alex", 1.80, 75.0))