Python 2.7,解析时意外的EOF

时间:2013-09-10 23:28:54

标签: python-2.7

我是Python的新手,我正在尝试解决以下问题:我想添加用户输入的数字。这是我的程序

add = 0  
num = input('Enter a number:')
add = add + num
while num != ' ' : 
    num = input('Next number:')
    add = add + num
    print add

我想在输入空白时终止程序。所以我知道问题出在第4行。什么是正确的语法?

提前感谢您的帮助

2 个答案:

答案 0 :(得分:1)

在python 2.7中,应使用raw_input

处理用户输入

这是因为input在语义上等同于:

eval(raw_input(prompt))

明显

eval('')
解析时

将返回EOF错误。

由于raw_string没有将字符串解析为int,因此当您执行添加时,您还必须使用int()进行转换。
您还需要更改为while语句:

add = 0  
num = raw_input('Enter a number:')
# you cant do a + here what if the user hits enter right away.
if num:
    add = int(num)

while num: # enter will result in a null string not a space
    num = raw_input('Next number:')
    if num:
        add = add + int(num)
    print add

答案 1 :(得分:0)

尝试按照并阅读一下。

>>> help(input)

>>> help(raw_input)

>>> s=raw_input()
<return right here>
>>> s
''
>>> s=raw_input()
 <one space followed by return here>
>>> s
' '
>>>