SyntaxError:使用python解析时出现意外的EOF

时间:2015-02-18 11:33:16

标签: python python-2.7

我正在尝试制作计算器功能。在尝试我得到语法错误。请帮我解决这个错误。

#Addition
def add(num1, num2):
    return num1 + num2

#subtraction
def sub(num1, num2):
    return num1 - num2

#Multiplication
def mul(num1, num2):
    return num1 * num2

#Division
def div(num1, num2):
    return num1 / num2


def main():
    operation = input("What do you want to do  +,-.*,/: ")
    if(operation != '+' and operation != '-' and operation != '*' and operation != '/'):
    #invalid operation
        print("please enter valid operation")
    else:
        var1 = int(input("Enter num1: "))
        var2 = int(input("Enter num2: "))
    if(operation == '+'):
        print(add(var1, var2))
    elif(operation == '-'):
        print(sub(var1, var2))
    elif(operation == '*'):
        print(mul(var1, var2))
    else:
        print(div(var1, var2))

main()

当我运行我的代码时: 我输入+, - ,*,/

Traceback (most recent call last):
  File "D:\python\Calculator1.py", line 35, in <module>
    main()
  File "D:\python\Calculator1.py", line 19, in main
    operation = input("What do you want to do  +,-.*,/: ")
  File "<string>", line 1
    -
    ^
SyntaxError: unexpected EOF while parsing

1 个答案:

答案 0 :(得分:2)

您正在使用input()函数,该函数将输入解释为 Python代码-不是有效的Python表达式,您会收到语法错误。

改为使用raw_input()功能;它只需要用户输入并将其作为字符串返回。您的代码已经处理了转换为数字的整数。

演示:

>>> input('')
-
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    -
    ^
SyntaxError: unexpected EOF while parsing
>>> raw_input('')
-
'-'

你可能有一本关于Python的书或教程,假设你在这里使用Python 3。在Python 3中,raw_input()被重命名为input(),而input()的Python 2实现完全被删除。