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:

Code: Alles auswählen

    if jein == 'nein' or 'Nein':
        print("Tschüss")

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:

Code: Alles auswählen

    if jein == 'nein' or 'Nein':
        print("Tschüss")
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
SerBlack hat geschrieben:https://vid.me/lYGM bitte
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