Seite 1 von 3
Taschenrechner Python
Verfasst: Mittwoch 5. April 2017, 09:23
von SerBlack
Code: Alles auswählen
num1 = input("Gib die erste Zahl ein: ")
oper = input("Welche Rechenoperation soll durchgefuehrt werden? (+,-,/.,*): ")
num2 = input("Gib die zweite Zahl ein: ")
num1 = int(num1)
num2 = int(num2)
if (oper == ""+""):
print("Deine Rechnung:", num1, " + ", num2)
print("Ergebnis:", num1 + num2)
elif(oper == "-"):
print("Deine Rechnung:", num1, " - ", num2)
print("Ergebnis:", num1 + num2)
elif(oper == "/"):
print("Deine Rechnung:", num1, " / ", num2)
print("Ergebnis:", num1 / num2)
elif(oper == "*"):
print("Deine Rechnung:", num1, " * ", num2)
print("Dein Ergebnis:", num1 * num2)
else:
print("Deine Eingaben sind nicht gueltig")
jein = input("Willst du weiter rechnen? (Ja/Nein)")
jein = str(jein)
if(jein == "ja","Ja"):
elif(jein == "nein","Nein"):
So, ich bin mit Python etwas weiter gekommen, ich habe hier ein Problem: Wenn man gerechnet hat, will ich dass der Taschenrechner wieder von Anfang anfängt wenn man mit Ja beantwortet hat.
Re: Taschenrechner Python
Verfasst: Mittwoch 5. April 2017, 09:50
von BlackJack
@SerBlack: Die Addition funktioniert nicht, beziehungsweise nicht wenn der Benutzer ein '+' eingibt. Er kann aber etwas anderes eingeben um zu addieren. Was?
Um die Bedingungen bei ``if`` und ``elif`` gehören keine Klammern.
Das Ergebnis der `input()`-Funktion ist in Python 3 bereits eine Zeichenkette. Es macht also keinen Sinn diese Zeichenkette in eine Zeichenkette umzuwandeln. Der Wert wird dadurch nicht ”zeichenkettiger”.
Die letzten beiden Vergleiche werden so nicht funktionieren. Eine Zeichenkette mit einem Tupel zu vergleichen wird *immer* `False` ergeben.
Das Problem mit dem Wiederholen löst man üblicherweise mit einer ``while True:``-Schleife, die mit ``break`` abgebrochen wird, wenn der Benutzer nicht noch eine Berechnung machen möchte.
Re: Taschenrechner Python
Verfasst: Mittwoch 5. April 2017, 10:01
von SerBlack
Oh, du hast recht: Hatte mich verschrieben ... Jetzt funktioniert auch - aber + funktioniert nicht, verstehe nicht ganz warum das nicht funktioniert.
also soll ich jetzt while true, wo sollte das stehen?
EDIT: Hat sich erledigt, außer mit dem while true
Code: Alles auswählen
# -*- coding: iso-8859-1 -*-
num1 = input("Gib die erste Zahl ein: ")
oper = input("Welche Rechenoperation soll durchgeführt werden? (+,-,/.,*): ")
num2 = input("Gib die zweite Zahl ein: ")
num1 = int(num1)
num2 = int(num2)
if(oper == "+"):
print("Deine Rechnung:", num1, " + ", num2)
print("Ergebnis:", num1 + num2)
elif(oper == "-"):
print("Deine Rechnung:", num1, " - ", num2)
print("Ergebnis:", num1 - num2)
elif(oper == "/"):
print("Deine Rechnung:", num1, " / ", num2)
print("Ergebnis:", num1 / num2)
elif(oper == "*"):
print("Deine Rechnung:", num1, " * ", num2)
print("Dein Ergebnis:", num1 * num2)
else:
print("Deine Eingaben sind nicht gültig")
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 07:45
von EEK
SerBlack hat geschrieben:
EDIT: Hat sich erledigt, außer mit dem while true
Das mit dem while true machst du so in etwa:
Code: Alles auswählen
# -*- coding: iso-8859-1 -*-
while True:
num1 = input("Gib die erste Zahl ein: ")
oper = input("Welche Rechenoperation soll durchgeführt werden? (+,-,/.,*): ")
num2 = input("Gib die zweite Zahl ein: ")
num1 = int(num1)
num2 = int(num2)
if (oper == "+"):
print("Deine Rechnung:", num1, " + ", num2)
print("Ergebnis:", num1 + num2)
elif (oper == "-"):
print("Deine Rechnung:", num1, " - ", num2)
print("Ergebnis:", num1 - num2)
elif (oper == "/"):
print("Deine Rechnung:", num1, " / ", num2)
print("Ergebnis:", num1 / num2)
elif (oper == "*"):
print("Deine Rechnung:", num1, " * ", num2)
print("Dein Ergebnis:", num1 * num2)
else:
print("Deine Eingaben sind nicht gültig")
jein = input("Willst du weiter rechnen? (Ja/Nein)")
if jein == 'nein':
break
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:05
von SerBlack
Danke, funktioniert aber nicht ganz, wenn ich Nein antworte, macht er weiter und hört nicht auf.
EDIT: Doch, nur musste ich auf klein/großschreibung achten
dies habe ich so gelöst:
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:16
von EEK
SerBlack hat geschrieben:
EDIT: Doch, nur musste ich auf klein/großschreibung achten
dies habe ich so gelöst:
Wenn du es "richtig" machen willst, musst aber auch noch Falscheingaben abfangen. Also z.B. wenn sich jemand vertippt: "nien", "aj"...
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:19
von BlackJack
@SerBlack: Das hast Du ziemlich sicher nicht so gelöst, denn das funktioniert nicht.
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:22
von SerBlack
Doch, bei mir funktioniert es.
https://vid.me/Bs0g
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:24
von EEK
BlackJack hat geschrieben:@SerBlack: Das hast Du ziemlich sicher nicht so gelöst, denn das funktioniert nicht.
Stimmt, das wäre mir jetzt gar nicht aufgefallen.
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:28
von EEK
SerBlack hat geschrieben:Doch, bei mir funktioniert es.
Kann nicht sein, weil sich das
[codebox=pycon file=Unbenannt.txt]
or "Nein"
[/code]
nicht auf das erste "jein" bezieht
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:32
von SerBlack
Ich weiß nicht was ihr alle habt, aber bei mir funktioniert es!
https://vid.me/43Vs
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:32
von EEK
SerBlack hat geschrieben:Ich weiß nicht was ihr alle habt, aber bei mir funktioniert es!
https://vid.me/43Vs
Dann gib mal z.B. "Ja" ein
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:35
von SerBlack
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:39
von EEK
Entweder hast du den Code geändert oder keine Ahnung. So wie in deinem Beispiel kann es jedenfalls nicht funktionieren.
Von mir aus behauptest du auch weiter, dass es so funktioniert, aber wenn dir Leute "BlackJack" die wirklich Ahnung haben, sagen, dass du falsch liegst, solltest du vielleicht darauf hören wenn du was lernen willst.
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:40
von BlackJack
@SerBlack: EEK meinte bei dem falschen Code. Die relevante Zeile musst Du ja geändert haben. Und im Video ist die nun nicht mehr zu sehen. Warum wohl…
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:41
von SerBlack
Oh, da habt ihr recht

das war der alte code.
wie kann man es dann lösen?
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:47
von EEK
SerBlack hat geschrieben:Oh, da habt ihr recht

das war der alte code.
wie kann man es dann lösen?
Jetzt überleg mal! Wenn
[codebox=pys60 file=Unbenannt.txt]
if jein == 'nein':
[/code]
funktioniert.
[codebox=pys60 file=Unbenannt.txt]
if jein == 'nein' or 'Nein':
[/code]
aber nicht, was muss denn dann zwischen [codebox=pys60 file=Unbenannt.txt]'nein' or [/code]und[codebox=pys60 file=Unbenannt.txt] 'Nein':[/code]?
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:51
von BlackJack
@SerBlack: Entweder rechts und links vom ``or``-Operator einen Vergleich durchführen, oder die Eingabe beispielsweise in Kleinbuchstaben umwandeln und mit 'nein' vergleichen. Dann hat man alle Kombinationen 'nein' in Gross- und Kleinbuchstaben zu schreiben erschlagen.
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 09:58
von SerBlack
BlackJack hat geschrieben:@SerBlack: Entweder rechts und links vom ``or``-Operator einen Vergleich durchführen, oder die Eingabe beispielsweise in Kleinbuchstaben umwandeln und mit 'nein' vergleichen. Dann hat man alle Kombinationen 'nein' in Gross- und Kleinbuchstaben zu schreiben erschlagen.
Habe gerade im Internet gesucht und nicht gefunden, wie wandelt man die Eingabe in Kleinbuchstaben um?
Re: Taschenrechner Python
Verfasst: Donnerstag 6. April 2017, 10:02
von EEK
SerBlack hat geschrieben:BlackJack hat geschrieben:@SerBlack: Entweder rechts und links vom ``or``-Operator einen Vergleich durchführen, oder die Eingabe beispielsweise in Kleinbuchstaben umwandeln und mit 'nein' vergleichen. Dann hat man alle Kombinationen 'nein' in Gross- und Kleinbuchstaben zu schreiben erschlagen.
Habe gerade im Internet gesucht und nicht gefunden, wie wandelt man die Eingabe in Kleinbuchstaben um?
Gleich der erste Treffer bei google:
http://stackoverflow.com/questions/6797 ... -in-python