75 lines
2.3 KiB
Python
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()
|