Ich habe ein Skript erstellt dass die Katheten oder die Hypotenuse berechnen kann.
Aber warum wird jedes mal die erste Schleife ausgeführt obwohl der Input k oder K ist?
import math
art = str(input("Soll die Kathete (k) oder Hypothenuse (h) berechnet werden : "))
if art == "h" or "H":
a = float(input("Der kleinere Wert: "))
b = float(input("Der größere Wert: "))
a = a ** 2
b = b ** 2
zwischenschritt = a + b
Ergebnis = math.sqrt(zwischenschritt)
print(Ergebnis)
elif art == "k" or "K":
a = float(input("Welchen Wert hat a: "))
b = float(input("Welchen Wert hat b: "))
a = a ** 2
b = b ** 2
zwischenschritt = a - b
Ergebnis = math.sqrt(zwischenschritt)
print(Ergebnis)
Das Programm ist noch nicht sehr robust, da fehlerhafte Eingaben nicht behandelt werden. Bei der Kathetenberechnung fliegt ein domain error, wenn a < b ist. Input() liefert bereits einen String zurück und kann mittels lower() die Benutzereingabe gleich auf Kleinbuchstaben konvertieren.
When we say computer, we mean the electronic computer.
Mein Geometrieunterricht ist schon etwas her, aber ist bei einem rechtwinklingen Dreieck zur Berechnung der Hypothenuse nicht egal in welcher Reihenfolge man die Werte eingibt? Also a² + b² ist doch immer das Gleiche, im Gegensatz zu der Berechnung der Kathete bei der man ja c² (Hypothenuse) - a² (eine der Katheten )rechnen muss und dann die Wurzel ziehen um die fehlende Kathete herauszufinden.