Seite 1 von 1
Python Einfacher Taschenrechner
Verfasst: Mittwoch 26. August 2020, 14:34
von Patryk Buczak
Hallo zusammen,
Ich habe ein kleines Problem mit dem Taschenrechner:
print ('Wie möchtest du rechnen?')
print ('1 = addieren')
print ('2 = subtrahieren')
print ('3 = dividieren')
print ('4 = multiplizieren')
i = int(input())
if i > 4:
print ("ERROR")
print ("Bitte gib eine Nummer zwischen 1 und 4 ein.")
print ('Gib eine Zahl ein')
zahl1 = int(input())
print ('Gib eine zweite Zahl ein')
zahl2 = int(input())
if i == 1:
antwort = (zahl1 + zahl2)
elif i == 2:
antwort = (zahl1 - zahl2)
elif i == 3:
antwort = (zahl1 / zahl2)
elif i == 4:
antwort = (zahl1 * zahl2)
print (antwort)
print ('Bitte Eingabetaste drücken um das Programm zu beenden')
end = input()
Und zwar, ich weiß nicht wie ich die erste If-Bedingung beenden soll. Nach dem 2 print kommt direkt der dritte. Aber ich will ja so machen, dass der Computer mich nochmal fragt dass man eine Zahl zwischen 1-4 eingibt nachdem man zum Beispiel eine 5 eingegeben hat. Also quasi die erste If-Bedingung (oder vielleicht Schleife?) beenden und dann erst der Satz: "'Gib eine Zahl ein" kommt. Würde mich über eine Antwort freuen, Grüße
Re: Python Einfacher Taschenrechner
Verfasst: Mittwoch 26. August 2020, 18:36
von Geralonx
Nunja, du hast in deiner ersten if ja keine alternative Route. Sogesehen überprüfst du, ob i>4 ist und machst dann die Ausgabe. Anschließend läuft der Code nach der if unten weiter. Im einfachsten Fall kannst du einfach sagen:
Code: Alles auswählen
print ('Wie möchtest du rechnen?')
print ('1 = addieren')
print ('2 = subtrahieren')
print ('3 = dividieren')
print ('4 = multiplizieren')
i = int(input())
if i>4: # Ausführen, wenn i>4
print ("ERROR")
print ("Bitte gib eine Nummer zwischen 1 und 4 ein.")
else: # Ausführen wenn i nicht > 4
# dein rest
# Unten drunter -> wird immer ausgeführt, da dieser Teil nichts mehr mit der if/else Abfrage zu tun hat
Wenn du willst, dass der Benutzer solange gefragt wird, bis i<4 eingegeben wird, dann kannst du deine Eingabe wiederholt in einer while-Schleife einbringen und die Bedingung wäre eine Abfrage auf i
Re: Python Einfacher Taschenrechner
Verfasst: Mittwoch 26. August 2020, 18:52
von Sirius3
Wenn Du eine Falscheingabe wiederholen willst, dann braucht Du eine Schleife, wie Du ja schon richtig selbst erkannt hast.
Zwischen dem Funktionsnamen, hier print, und der öffnenden Klammer zum Funktionsaufruf kommt kein Leerzeichen. Bei int und input hast Du es ja auch so gemacht.
Bei den ganzen Rechenoperationen sind die Klammern überflüssig und können weg.
Die letzten zwei Zeilen sind unsinnig und können weg. Ein Konsolenprogramm startet man aus der Konsole heraus, und will nicht noch stupide die Eingabetaste drücken, um weiter arbeiten zu können.
Code: Alles auswählen
print('Wie möchtest du rechnen?')
print('1 = addieren')
print('2 = subtrahieren')
print('3 = dividieren')
print('4 = multiplizieren')
while True:
auswahl = int(input())
if 1 <= auswahl <= 4:
break
print("ERROR")
print("Bitte gib eine Nummer zwischen 1 und 4 ein.")
print('Gib eine Zahl ein')
zahl1 = int(input())
print('Gib eine zweite Zahl ein')
zahl2 = int(input())
if auswahl == 1:
antwort = zahl1 + zahl2
elif auswahl == 2:
antwort = zahl1 - zahl2
elif auswahl == 3:
antwort = zahl1 / zahl2
elif auswahl == 4:
antwort = zahl1 * zahl2
else:
assert False, "dieser Fall kann nicht auftreten"
print(antwort)
Jetzt kannst Du noch die Exception abfangen, falls man gar keine Zahl eingibt.
Re: Python Einfacher Taschenrechner
Verfasst: Donnerstag 27. August 2020, 07:34
von Patryk Buczak
Vielen Dank für die Antworten, jetzt weiß ich wenigstens was ich falsch gemacht habe

Re: Python Einfacher Taschenrechner
Verfasst: Donnerstag 27. August 2020, 08:01
von Patryk Buczak
Sirius3 hat geschrieben: Mittwoch 26. August 2020, 18:52
Wenn Du eine Falscheingabe wiederholen willst, dann braucht Du eine Schleife, wie Du ja schon richtig selbst erkannt hast.
Zwischen dem Funktionsnamen, hier print, und der öffnenden Klammer zum Funktionsaufruf kommt kein Leerzeichen. Bei int und input hast Du es ja auch so gemacht.
Bei den ganzen Rechenoperationen sind die Klammern überflüssig und können weg.
Die letzten zwei Zeilen sind unsinnig und können weg. Ein Konsolenprogramm startet man aus der Konsole heraus, und will nicht noch stupide die Eingabetaste drücken, um weiter arbeiten zu können.
Code: Alles auswählen
print('Wie möchtest du rechnen?')
print('1 = addieren')
print('2 = subtrahieren')
print('3 = dividieren')
print('4 = multiplizieren')
while True:
auswahl = int(input())
if 1 <= auswahl <= 4:
break
print("ERROR")
print("Bitte gib eine Nummer zwischen 1 und 4 ein.")
print('Gib eine Zahl ein')
zahl1 = int(input())
print('Gib eine zweite Zahl ein')
zahl2 = int(input())
if auswahl == 1:
antwort = zahl1 + zahl2
elif auswahl == 2:
antwort = zahl1 - zahl2
elif auswahl == 3:
antwort = zahl1 / zahl2
elif auswahl == 4:
antwort = zahl1 * zahl2
else:
assert False, "dieser Fall kann nicht auftreten"
print(antwort)
Jetzt kannst Du noch die Exception abfangen, falls man gar keine Zahl eingibt.
Hier wird aber immer noch nach dem Error die Zeile "Gib eine Zahl ein" ausgegeben und das will ich ja nicht. Ich will dass der Computer solange fragt, dass man eine Zahl zwischen 1-4 eingibt bis man tatsächlich eine richtige Zahl eingibt.
Re: Python Einfacher Taschenrechner
Verfasst: Donnerstag 27. August 2020, 08:08
von sparrow
1. Du brauchst nicht Beitrag zu zitieren. Wir sehen den ja oben.
2. Nö. Nach einer Falscheinagabe wird man wieder aufgefordert eine Zahl zwischen 1 und 4 einzugeben. Bei welcher Eingabe ist das denn deiner Meinung nach nicht so?
Re: Python Einfacher Taschenrechner
Verfasst: Donnerstag 27. August 2020, 08:40
von Jankie
Du kannst auch mit Hilfe von einer Endlosschleife und
try/except dafür sorgen, dass es nur weiter geht wenn eine gültige Eingabe gemacht wurde.
Code: Alles auswählen
Endlosschleife:
versuche:
auswahl = Eingabe und zu Integer konvertieren
wenn Variable auswahl im Bereich von 1-4 liegt:
gebe aus, dass die Eingabe richtig ist und es weiter geht
verlasse die Endlosschleife
ansonsten:
rufe ValueError auf
fange ValueError ab:
gebe aus, dass die Eingabe ungültig war und nur Zahlen zwischen eins und vier erlaubt sind
hier geht das Programm weiter
Re: Python Einfacher Taschenrechner
Verfasst: Donnerstag 27. August 2020, 09:26
von __blackjack__
@sparrow: Wenn man keine Zahl eingibt. Also einfach nur die Eingabetaste oder "x" oder so.
@Patryk Buczak: Bei den Rechnungen möchtest Du vielleicht noch irgendwie berücksichtigen was passiert wenn die Operation dividieren und der zweite Operand eine 0 ist.
Re: Python Einfacher Taschenrechner
Verfasst: Donnerstag 27. August 2020, 09:31
von sparrow
@__blackjack__: Dann kommt es aber zu einer Exception, dann steigt das Programm aus. Dann kommt auch keine Frage nach einer Zahl mehr. Deshalb gehe ich davon aus, dass Patryk Buczak von einer ungültigen Zahl spricht.
Re: Python Einfacher Taschenrechner
Verfasst: Donnerstag 27. August 2020, 12:59
von Patryk Buczak
@__blackjack__: Nee, alles gut. Ich habe den Fehler herausgefunden. Ich habe alle Leerzeichen, Blocksätze usw. nicht berücksichtigt (wusste nicht dass es so wichtig ist) , deswegen kam da ein Fehler bei mir als ich versucht habe, das Programm auszuführen. Es hat sich also erledigt, danke für eure Hilfe