ich bin Rich (nicht reich ) ich möchte mir selbst Python beibringen und hab heute (nachdem ich mal alle Grundlagen "studiert" hatte) mit einem kleinem Rechner angefangen. Wie es so immer ist, kamen mir immer weiter neue Ideen und nun komm ich nicht weiter. Meine Vermutung legt nahe, dass es bei der Typen Abfrage hackelt :/
Momentan ist die Ausgabe wie folt:
Man soll eine Eingabe für die Variabeln a b c eingeben. EGAL was ich eingebe, es folgt ein "Fehler" und die Eingabe beginnt von vorn. Dabei soll die Eingabe nur dann von vorne beginnen wenn die Eingabe keine Zahl ist. Sprich, wenn sie leer ist oder einen string aufweist.
Vielleicht findet sich hier jemand der mir einen Tipp geben kann woran es scheitert
Zudem erhalte ich bei der ersten While Schleife in der Abfrage in der Zeile " sa = input("Seitenlänge a: ")" einen Fehler angezeigt:
[mccabe] Cyclomatic complexity too high: 15 (threshold 15)
Laut einer online Recherche liegt es an zu vielen "ifs" aber das kann doch nicht sein, oder?
Für jede Hilfe wäre ich dankbar
LG Rich96
Code: Alles auswählen
print("Rechner")
sa = ""
sb = ""
sc = ""
le = "Leere Eingabe"
while sa == "" or sb == "" or sc == "":
sa = input("Seitenlänge a: ")
sb = input("Seitenlänge b: ")
sc = input("Seitenlänge c: ")
if type(sa) != str and type(sb) != str and type(sc) != str:
a = float(sa)
b = float(sb)
c = float(sc)
print("")
print("Gültige Angabe: a: {0}, b: {1}, c:{2} ". format(a,b,c))
multierg = a * b * c
adderg = a + b + c
suberg = a - b - c
if not a == 0 or not b == 0 or not c ==0:
diverg = a / b / c
else:
diverg ="'division durch 0 nicht möglich'"
print("")
print("Welche Rechnung möchstest Du durchführen?")
print("")
print("Drücke 1 für Multiplikation")
print("Drücke 2 für eine Addition")
print("Drücke 3 für eine Subtraktion")
print("Drücke 4 für eine Division")
try:
eingabe = -1
while not eingabe == 1 or not eingabe == 2 or not eingabe == 3 or not eingabe == 4 or not eingabe == 0:
eingabe = int(input())
if eingabe == 1:
print("Das Ergebnis lautet {0}". format(multierg))
print("Um Rechner zu beenden drück '0'")
elif eingabe == 2:
print("Das Ergebnis lautet {0}". format(adderg))
print("Um Rechner zu beenden drück '0'")
elif eingabe == 3:
print("Das Ergebnis lautet {0}". format(suberg))
print("Um Rechner zu beenden drück '0'")
elif eingabe == 4:
print("Das Ergebnis lautet {0}". format(diverg))
print("Um Rechner zu beenden drück '0'")
elif eingabe == 0:
print("Rechner verlassen.")
break
else:
print("Fehlerhafte Eingabe, neuer Versuch")
except:
("except")
elif sa == "":
print(le)
continue
elif sb == "":
print(le)
continue
elif sc == "":
print(le)
continue
else:
sa = ""
sb = ""
sc = ""
print("Fehler")
continue