我制作了一个简单的计算器,您可以在一个运算符中输入无限的数字(即加法),但每次运行它时,它都会给出错误:
"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"
我在这里只包含两个函数,即选择要使用的操作的函数和加法函数,因此它会尽可能简短。问题是:每当我尝试将“c == '+'”放在倒数第二行中时,都会收到上述错误。我希望发生的是,当用户输入“+”时,它会调用函数“choose_operation”,这样我就可以返回选择操作。出了什么问题?这是我的代码。
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()
由于您使用的是 python 2,因此使用
input
尝试评估输入的字符串。
输入数字时可能看起来很方便,因为您可以:
a = input("enter number")
和
a
是一个浮点数、整数,无论你输入什么。
但是当您想输入字符串(例如:
+
)时,pyhton 引擎会将您的表达式计算为 +
,因此您会遇到错误。
因此,对于 python 2,请删除
input()
,因为它存在安全问题:您可以运行系统命令并删除文件等...
Python 2:
raw_input()
来获取字符串(如 +
)a = float(raw_input("enter a float"))
Python 3:
同样的事情,但使用
input
代替raw_input
(input
,正如我们所知,令人讨厌的评估已被删除,raw_input
现在是input
)