Python Programmierfehler?

4 Antworten

Du versuchst einen String (von input) mit einem Integer (z.B. 1) zu vergleichen, daher wird keines deiner ifs TRUE und Ergebnis2 wird nie definiert, also wirft print(Ergebnis2) einen Fehler.

Das könntest du beheben indem du deine if entsprechend änderst:

if (Ergebnis == "1"):

oder

if (int(Ergebnis) == 1):

P.s. Deine Rechnungen werden, aufgrund desselben Problems, auch nicht klappen.

Kleine Ergänzung:

Als Alternative kannst du dein input auch direkt in ein int umwandeln:

Ergebnis = int(input("Addieren? usw.))

Keiner deiner if Anweisungen trifft zu, da Ergebnis vom Typ str ist, wenn input() ausgeführt wurde. Daher wird nie eine Ergebnis2 = ... Anweisung ausgeführt und die Variable ist noch undefiniert, wenn das print() Statement ausgeführt wird.

Auch wenn die if Verzweigung funktionieren würde (Tip: if Ergebnis == '1' z.b.), werden auch Zahl1 und Zahl2 wegen der input() Anweisung vom Typ str sein und damit kann die Rechenoperation nicht ausgeführt werden.

Du müsstest dir mal anschauen, wie du bei str Variablen an den numerischen Inhalt, also als echte Zahl, heran kommst.

Was passiert, wenn du Variablennamen ohne Ziffern verwendest?

Vorschlag:

  • Ergebnis -> Modus
  • Ergebnis2 -> Ergebnis

Dann definiere doch oben ergebnis2. Ich weiß ja nicht, wie das in Python läuft. Läuft das Programm überhaupt in einen if Zweig hinein?