python交互模式中的错误?

时间:2011-04-24 00:40:53

标签: python interactive

我在python交互模式下尝试编码时得到语法错误反应。

>>> while True:
...   reply = raw_input('enter text:')
...   if reply == 'stop':
...     break
...   print reply
... print 'bye'
  File "<stdin>", line 6
    print reply
        ^
SyntaxError: invalid syntax
>>>

但如果另存为脚本则执行正常。

~ $cat test.py
#!/usr/bin/env python
# encoding=utf8

while True:
  reply = raw_input('enter text:')
  if reply == 'stop':
    break
  print reply
print 'bye'
~ $python test.py
enter text:19
19
enter text:456789
456789
enter text:$%^&*(
$%^&*(
enter text:TGHJKLO:P
TGHJKLO:P
enter text:#$%^&*()_
#$%^&*()_
enter text:stop
bye

这是一个错误吗?或者我应该知道的关于python交互模式的任何其他事情?

~ $python -V
Python 2.6.6

1 个答案:

答案 0 :(得分:2)

我认为当你返回缩进的第一列时,必须将其留空,以表示你打开的块现在已经准备好被解释了。

如果你把它放在一个函数中,在它正常工作后调用它。

    In [66]: def fun():
   ....:     while True:
   ....:         reply = raw_input("enter text:")
   ....:         if reply == 'stop':
   ....:             break
   ....:         print reply
   ....:     print "bye"
   ....: