Python Code Error?

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 :)

Woher ich das weiß:Berufserfahrung – Softwareentwickler

ab dem zweiten "if " muss es "else if" heissen.