If 语句,其中变量等于特殊字符 [Python] [重复]

问题描述 投票:0回答:1

我制作了一个简单的计算器,您可以在一个运算符中输入无限的数字(即加法),但每次运行它时,它都会给出错误:

"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
1个回答
1
投票

由于您使用的是 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

© www.soinside.com 2019 - 2024. All rights reserved.