Python Code Error?
Hallo zusammen :D
ich bin grad dabei diesen Code zu schreiben: +
Eingabe von 3 Winkeln -> Überprüfen, ob die auch zusammen 180 Grad ergeben und keiner der 3 Winkel unter 0 Grad hat
Dann noch ob es sich um ein "obtuse triangle", "right triangle" oder um ein "acute triangle" handelt.
Soweit habe ich das alles, nur es geht irgendwie nicht.
Sieht jemand den Fehler?
a = int(input("Please enter the first angle: ")
b = int(input("Please enter the second angle: ")
c = int(input("Please enter the third angle: ")
if a+b+c != 180:
print("The entered values are not valid.")
if a and b and c < 0:
print("Angles smaller than 0 are not valid.")
if a or b or c == 90:
print("The triangle is a right triangle")
if a and b and c < 90:
print("The triangle is an acute triangle")
if a and b and c > 90:
print("The triangle is an obtuse triangle")
4 Antworten
Hinweis am Anfang: Bitte nutze doch immer die Code-Umgebung, wenn du Code kopierst. Das macht es zum einen leichter zum lesen, zum anderen bleiben auch die Einrückungen so, wie sie sollen. Hier ist es jetzt weniger ein Problem, bei anderen Fragen wird es schon kritischer
Sieht jemand den Fehler?
Erstens: Du hast immer nur reine If-Blöcke. Sollte ein Fall fehlschlagen, werden die anderen dennoch überprüft
if a and b and c < 0:
Das hier wird immer wahr sein, wenn a != 0 und b != 0 und c < 0. DH sobald a einen Wert ungleich 0 hat und b einen Wert ungleich 0 hat (egal, ob positiv oder negativ), wird diese Bedingung ausgeführt
Denn duch "and" und "or" werden einzelne booleans verknüpft. Ein Integer hat den Wert wahr, wenn er ungleich 0 ist. Das kannst du in einer Python-Shell leicht selbst herausfinden:
>>> bool(1)
True
>>> bool(0)
False
>>> bool(-1)
True
dann:
if a or b or c == 90:
das hier wird immer ausgeführt, wenn entweder c den Wert 90 enthält oder a / b einen Wert ungleich 0 enthält - aus dem gleichen Grund wie oben
Analog diese beiden Fälle:
if a and b and c > 90:
if a and b and c < 90:
Mein Vorschlag:
if a+b+c != 180:
print("The entered values are not valid.")
else if a < 0 or b < 0 or c < 0:
print("Angles smaller than 0 are not valid.")
else if a == 90 or b == 90 or c == 90:
print("The triangle is a right triangle")
else if a < 90 and b < 90 and c < 90:
print("The triangle is an acute triangle")
else if a > 90 or b > 90 or c > 90:
print("The triangle is an obtuse triangle")
Du kannst keine Conditions so verbinden.
Du schriebst:
If a = condition AND b = condition
Dann gehts :)
ab dem zweiten "if " muss es "else if" heissen.