Python Taschenrechner
Hallo!
Ich habe eine Frage zu Python. Ich wolte einen Taschnenrechner schreiben der + , - , * , / und Wurzeln errechnen kann.
from math import sqrt
print ("Mini Taschenrechner")
a = raw_input("Bitte Rechnung eingeben ")
print("Das Ergebnis ist :", a )
Doch leider funktioniert das ganze nicht. Es kommt immer:
a = raw_input("Bitte Rechnung eingeben") NameError: name 'raw_input' is not defined
7 Antworten
Hab hier mal 'ne "Lösung". Vorhin programmiert und es funktioniert ^^ Die Eingaben kann man sicher besser lösen aber mir ist kurzfristig nicht eingefallen wie man es sonst machen könnte :D
Wenn jemand Fragen hat, haltet euch nicht zurück ;D Über Feedback, sowohl positiv als auch negativ, würde ich mich ebenfalls freuen. :)
print("""
====================================================
== Taschenrechner ==
====================================================
""")
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("\nDeine Rechnung: \n",
num1, " + ", num2)
print("Ergebnis: \n",
num1 + num2)
elif (oper == "-"):
print("\nDeine Rechnung: \n",
num1, " - ", num2)
print("Ergebnis: \n",
num1 - num2)
elif (oper == "/"):
print("\nDeine Rechnung: \n",
num1, " / ", num2)
print("Ergebnis: \n",
num1 / num2)
elif (oper == "*"):
print("\nDeine Rechnung: \n",
num1, " * ", num2)
print("Ergebnis: \n",
num1 * num2)
else:
print("\nKeine gültige Eingabe");
Also im Grunde ist dein Taschenrechner gut aber irgendwie auch ein bisschen billig ;) ich habe mich grade mal eine Woche mit Python beschäftigt und habe grade eben fast den Selben rechner Programiert. :P
Hey, bin ein bisschen zu spät aber was solls.
Ich habe den Code mal auch ein wenig umgeändert so das er fragt ob du noch eine Rechnung machen möchtest :=)
import time
def rechner():
for i in range(50):
print(" ")
print("""
====================================================
== Taschenrechner ==
====================================================
""")
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("\nDeine Rechnung: \n",
num1, " + ", num2)
print("Ergebnis: \n",
num1 + num2)
elif (oper == "-"):
print("\nDeine Rechnung: \n",
num1, " - ", num2)
print("Ergebnis: \n",
num1 - num2)
elif (oper == "/"):
print("\nDeine Rechnung: \n",
num1, " / ", num2)
print("Ergebnis: \n",
num1 / num2)
elif (oper == "*"):
print("\nDeine Rechnung: \n",
num1, " * ", num2)
print("Ergebnis: \n",
num1 * num2)
else:
print("\nERROR Falsche Eingabe");
b = input("Wollen Sie eine weitere Rechnung machen? (y/n): ");
if b.lower() == "y":
rechner();
else:
time.sleep(1)
print("===================\n"
"Auf Wiedersehen!\n"
"===================")
time.sleep(3)
rechner()
Am besten du änderst Int zu float damit man auch Koma Zahlen berechnen kann.
Verbesserung:
print("""
====================================================
== Taschenrechner ==
====================================================
""")
num1 = input("Gib die erste Zahl ein: ")
oper = input("Welche Rechenoperation (+,-,*,/) soll durchgeführt werden? ")
num2 = input("Gib die zweite Zahl ein: ")
num1 = float(num1)
num2 = float(num2)
if (oper == "+"):
print("\nDeine Rechnung: \n",
num1, " + ", num2)
print("Ergebnis: \n",
num1 + num2)
elif (oper == "-"):
print("\nDeine Rechnung: \n",
num1, " - ", num2)
print("Ergebnis: \n",
num1 - num2)
elif (oper == "/"):
print("\nDeine Rechnung: \n",
num1, " / ", num2)
print("Ergebnis: \n",
num1 / num2)
elif (oper == "*"):
print("\nDeine Rechnung: \n",
num1, " * ", num2)
print("Ergebnis: \n",
num1 * num2)
else:
print("\nKeine gültige Eingabe");
Du hast vermutlich Python 3.x, raw_input() gibt es da wohl nicht mehr. Nimm dafür input().
LG aus Stuttgart
ja du musst auch a = int(raw_input("Bitte Rechnung eingeben: ")) oder statt int eben floot oder wie das heißt außerdem wird das ganze nicht funktionieren weil du nicht 3+5 in einer zeile schreiben kannst, oder hast du das schon raus?
- input statt raw_input
- sprechende Varriablen
- "+ - * und /" können kein float sein
x1 wird nur ein Tupel der eingaben. Du wirst nach dem entsprechenden operator parsen müssen
if x1(1) is "+" #rechne mit + elif x1(1) is "-" #rechne mit -
(ich bin kein nativer python programmierer, es kann einen besseren weg geben)
Ich hab den ganz anders gemacht und so dass er gleich alle Rechenarten ausgibt. Nur das "else" habe ich noch nicht drauf, ebenso Abstande und Umbruch. Ich programmiere seit wenigen Minuten mit Version 3.5
:D
print("""
====================================================
== Taschenrechner ==
====================================================
Dieser Rechner addiert, subtrahiert, multipliziert und dividert auf einmal deine im folgenden angegebenen Zahlen
""")
num1 = int(input("Gib die erste Zahl ein: "))
num2 = int(input("Gib die zweite Zahl ein: "))
summe1=num1+num2
summe2=num1-num2
summe3=num1*num2
summe4=num1/num2
print(num1, " + ", num2)
print("Ergebnis:", summe1)
print(num1, " - ", num2)
print("Ergebnis:", summe2)
print(num1, " / ", num2)
print("Ergebnis:", summe4)
print(num1, " * ", num2)
print("Ergebnis:", summe3)
Wen du unter Python 2.x Arbeitest kannst du einfach input() verwenden es rechnet dan den Rechenausdruck automatisch aus.
>>>#z.B.:
>>> a = input()
1+2+3
>>> print a
6
>>>#Das ist wesentlich einfacher als der bisher genannte Code.
Geht leider auch nicht kommt der selbe Fehler:( Oder soll ich machen:
from math import sqrt
print ("Taschenrechner")
a = float(raw_input("Bitte erste Zahl eingeben "))
b = float(raw_input("Bitte zweite Zahl eingeben "))
c = float(raw_input("Bitte Rechenzeichen eingeben"))
x1= a,c,b
print ("Ergebnis: ", x1)
Geht aber leider auch nicht kommt auch der Fehler