0
我制作了一个简单的计算器,您可以在一个运算符中输入无限制的数字(即加法运算),但是每次运行它时,都会给出错误:如果语句的变量等于特殊字符[Python]
"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()
'input'函数返回一个字符串,你应该将它转换成int, '选择= int(输入)' – Arman
在python 2中,使用'raw_input()'或切换到python 3. –
@Arman:OP使用Python 2的'input'函数来计算它从stdin接收的字符串,所以如果你输入一个整数'input'将返回一个整数。正如你可以想象的那样,这是一个[主要的安全漏洞](http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html),通常建议不要在不可信数据上使用Python 2的'input'函数。 –