一个简单的问题,为什么break不能跳出循环?

一个简单的问题,为什么break不能跳出循环?

下面这段代码来自一个python教程,我运行它的时候输入quit,居然没有跳出循环,仍旧执行"Enter something:",谁能指点迷津?谢谢.


#!/usr/bin/python
# Filename: break.py

while True:
    s = raw_input('Enter something : ')
    if s == 'quit':
        break
    print 'Length of the string is', len(s)
print 'Done'

完全正确的啊,难道是传说中的RPWT
汗!不是吧?
我输入quit后回车,仍旧提示我输入,下面是我控制台内容:
Enter something : quit
Length of the string is 5
Enter something :

郁闷!我用的是eclipse+Pydev
s=eval(raw_input('Enter something  : '))看看这个可以不
是不是多输了一个空格?
用s.strip()去除空格看看
4楼的会出错,当我输入a,控制台的错误如下:
Enter something : a
Traceback (most recent call last):
  File "D:\work32\yp\src\break.py", line 5, in <module>
    s =eval(raw_input('Enter something : '))
  File "<string>", line 1
    a

    ^
SyntaxError: unexpected EOF while parsing
应该不是5楼说的空格的问题,我用了s.strip(),问题仍旧存在,大家难道输入quit可以执行“Done”?
>pythonw -u "test.py"
Enter something : 11
Length of the string is 2
Enter something : quit
Done
>Exit code: 0

运行了楼主程序,没有问题
我在eclipse +Pydev里面运行才出现上面的一些问题,而且输入一个a,显示的字符串长度是2,如下:
Enter something : a
Length of the string is 2
Enter something :

但是如果在windows下我直接双击break.py这个文件,输入一个a,显示的字符串长度却是1,而且输入quit能够跳出循环,这样看来,难道是IDE造成的?
十分不解!
可以使用repr(s)打印看一下是不是最后多了东西.好象pydev在处理从命令行得到的东西有问题.