Seite 1 von 1

Warum wird die erste if Schleife immer ausgeführt?

Verfasst: Freitag 5. Februar 2021, 21:56
von Mr_Gamco
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?

Code: Alles auswählen

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)
Vielen Dank für die Hilfe

Re: Warum wird die erste if Schleife immer ausgeführt?

Verfasst: Freitag 5. Februar 2021, 22:20
von sls
Weil if "H" immer True ergibt und die Bedingung somit zutrifft. Was du hier wohl versuchst ist:

if art == "h" or art == "H"

http://if-schleife.de/

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.

Re: Warum wird die erste if Schleife immer ausgeführt?

Verfasst: Samstag 6. Februar 2021, 10:45
von ThomasL
Und gewöhn dir den Begriff "if-Schleife" ab. Es gibt keine solche!
https://de.wikipedia.org/wiki/Bedingte_ ... erzweigung

Re: Warum wird die erste if Schleife immer ausgeführt?

Verfasst: Dienstag 9. Februar 2021, 08:57
von Jankie
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.