Files
INF6B/PLF/plf/bsp2_modern.py
2025-10-23 11:46:36 +02:00

75 lines
2.3 KiB
Python

from typing import List
def add_mountain(names: List[str], heights: List[int]) -> None:
"""Add a new mountain entry if it doesn't already exist."""
name = input("Name des Berges: ").strip()
if name in names:
print("Schon vorhanden.")
return
try:
height = int(input("Höhe: ").strip())
except ValueError:
print("Ungültige Eingabe! Bitte eine Zahl angeben.")
return
names.append(name)
heights.append(height)
print(f"'{name}' mit {height} m wurde hinzugefügt.")
def display_mountains(names: List[str], heights: List[int]) -> None:
"""Print the list of all mountains and their heights."""
print("\nBergliste:")
for name, height in zip(names, heights):
print(f"{name}: {height} m")
def get_highest_mountain(names: List[str], heights: List[int]) -> tuple[str, int]:
"""Return the highest mountain as (name, height)."""
max_height = max(heights)
index = heights.index(max_height)
return names[index], max_height
def calculate_average_height(heights: List[int]) -> float:
"""Return the average height of all mountains."""
return sum(heights) / len(heights)
def count_3000ers(heights: List[int]) -> int:
"""Return how many mountains are 3000 meters or higher."""
return sum(h >= 3000 for h in heights)
def main() -> None:
"""Main program loop."""
print("Berge Österreich")
mountain_names = ["Großglockner", "Wildspitze", "Weißkugel", "Großvenediger"]
mountain_heights = [3798, 3768, 3738, 3657]
while True:
choice = input("Neue Eingabe (j/n)? ").strip().lower()
if choice == "j":
add_mountain(mountain_names, mountain_heights)
elif choice == "n":
break
else:
print("Bitte nur 'j' oder 'n' eingeben.")
display_mountains(mountain_names, mountain_heights)
highest_name, highest_height = get_highest_mountain(mountain_names, mountain_heights)
print(f"\nDer höchste Berg ist der {highest_name} mit {highest_height} m.")
avg_height = calculate_average_height(mountain_heights)
print(f"Die durchschnittliche Höhe beträgt {avg_height:.1f} m.")
count = count_3000ers(mountain_heights)
print(f"In der Liste sind {count} 3000er gespeichert.")
if __name__ == "__main__":
main()