SyntaxError:读取一行时的EOF

时间:2014-07-09 19:46:37

标签: python

所以我最近一直试图在Python上运行代码。基本上,它是一个简单的计算器。 但每当我运行它时,在输入计算类型(例如 - ,+)之后,我会收到错误消息:'语法错误:解析时出现意外的EOF'。 这是代码行:

  while True:
a = float(input("What is your first number?"))
b = float(input("What is your second number?"))
c = input("What type of calculation is it?")
if c == '+':
  print('Now calculating'), a
  print('add', b)
  print(a + b)
elif c == '-':
  print('Now calculating', a)
  print('take away', b)
  print(a - b)
elif c == '/':
  print('Now calculating', a)
  print('divided by', b)
  print(a / b)
elif c == '*':
  print('Now calculating', a)
  print('multiply',b)
  print(a * b)
elif c == '**':
  print('Now calculating', a)
  print('to the power of', b)
  print(a ** b)
else:
  print("Calculation is not possible")

任何人都知道为什么? 另外,把它放在Laymen的术语中,因为我不熟悉Python。

1 个答案:

答案 0 :(得分:4)

c = input("What type of calculation is it?")

如果您使用的是Python 2.7,则应使用raw_input代替input

c = raw_input("What type of calculation is it?")

根据help(input),2.7中的输入是"等同于eval(raw_input(prompt))"。这意味着,如果用户键入" +",则解释器会尝试评估字符串" +"作为Python表达式。解释器很惊讶地在没有形成完整有效表达式的情况下到达字符串的末尾,因此它会告诉您"意外的EOF(文件结束)"