这是来自Ken Lambert" Python的基础知识":
{
sum=0
while True:
data = input('enter a number or just enter to quit: ')
if data == "":
break
number = float(data)
sum += number
print("the sum is", sum)
}
错误消息:
data = input('enter a number or just enter to quit: ')
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
Process finished with exit code 1
答案 0 :(得分:1)
Use raw_input
rather than input
. The description of input
以:
相当于
eval(raw_input(prompt))
您收到错误是因为eval("")
报告了语法错误,因为那里没有表达;它会立即获得EOF。
另一方面,raw_input
的描述说:
然后函数从输入中读取一行,将其转换为字符串(剥离尾部换行符),然后返回该行。
由于您需要用户键入的字符串,而不是表达式的评估,因此这是您应该使用的函数。
答案 1 :(得分:0)
您提供的错误是因为您使用了输入,它尝试从stdin执行文本作为python代码https://docs.python.org/2/library/functions.html#input。我在下面提供了一些修复。
sum=0
while True:
data = raw_input('enter a number or just enter to quit: ')
if len(data) < 1:
break
number = float(data)
sum += number
print("the sum is %f" % sum)
答案 2 :(得分:0)
我发现您的代码存在语法问题。如果您想将数据放入变量中,您应该使用:
variable = raw_input("Please enter ____")
因此,您应该将第4行替换为:
data = raw_input('enter a number or just enter to quit: ')