如果变量等于特殊字符的语句[Python]

时间:2016-11-06 09:09:25

标签: 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"

我这里只包括两个函数,它们是用于选择要使用的操作的函数和加法函数,因此它将尽可能地保持较短。问题是:每当我试图放置&#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()

1 个答案:

答案 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_inputinput我们知道它已经被删除,而raw_input现在是input