58 lines
2.6 KiB
Python
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))
|