我做了一个简单的计算器,您可以在一个运算符中输入无限数量(即添加),但每次运行它时都会出错:
"Traceback (most recent call last):
File "C:\Users\My own\Desktop\1.py", line 68, in <module>
choose_operation()
File "C:\Users\My own\Desktop\1.py", line 9, in choose_operation
addition()
File "C:\Users\My own\Desktop\1.py", line 26, in addition
c = input("Number:")
File "<string>", line 1
+
^
SyntaxError: unexpected EOF while parsing"
我这里只包括两个函数,它们是用于选择要使用的操作的函数和加法函数,因此它将尽可能地保持较短。问题是:每当我试图放置&#34; c ==&#39; +&#39;&#34;在第二行到最后一行,我得到上面提到的错误。我想要发生的是,当用户输入&#39; +&#39;时,它会调用函数“select_operation”&#39;所以我可以回去选择一项手术。什么地方出了错?这是我的代码。
def choose_operation():
print "choose operator"
print "1. Addition"
print "2. Subtraction"
print "3. Multiplication"
print "4. Division"
choice = input("choice = ")
if choice == 1:
addition()
elif choice == 2:
subtraction()
elif choice == 3:
multiplication()
elif choice == 4:
division()
else:
print "Select numbers from 1 to 4"
choose_operation()
def addition():
a = input("Number:")
b = input("Number:")
sum = a + b
print sum
while True: #I put this here so it can keep on adding numbers
c = input("Number:")
sum = sum + c
print sum
if c == '+':
choose_operation()
答案 0 :(得分:1)
由于您正在使用python 2,因此使用input
会尝试评估输入的字符串。
输入数字似乎很方便,因为你可以这样做:
a = input("enter number")
和a
是一个浮点数,int,无论你输入什么。
但是当你想输入一个字符串时,(例如:+
),pyhton引擎会将你的表达式评估为+
,因此你会遇到错误。
因此,删除input()
for python 2,因为它存在安全问题:您可以运行系统命令并删除文件等...
Python 2:
raw_input()
来获取字符串(例如+
)a = float(raw_input("enter a float"))
Python 3:
同样的事情,但是使用input
代替raw_input
(input
我们知道它已经被删除,而raw_input
现在是input
)