我在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
答案 0 :(得分:2)
我认为当你返回缩进的第一列时,必须将其留空,以表示你打开的块现在已经准备好被解释了。
如果你把它放在一个函数中,在它正常工作后调用它。
In [66]: def fun():
....: while True:
....: reply = raw_input("enter text:")
....: if reply == 'stop':
....: break
....: print reply
....: print "bye"
....: