为什么这不打印

时间:2014-09-03 19:30:44

标签: string variables printing

这是来自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

3 个答案:

答案 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: ')
相关问题