美好的一天!
今天我用Python 3.2.2编写了一个小脚本,以及这段简单的代码 决定给我带来麻烦。
def main():
yn = ""
#...
while True:
#...
yn = input( "---> " )
if yn.lower() != "y":
break
现在,当我在IDLE上运行它时,这段代码应该是非常明显的 Windows 7它工作得很好,或者当我双击脚本的图标时 在我的桌面上打开它,无论天气与否都没关系我输入“y”它关闭了 当然这是一个简单的解决方法 写作:
if yn.lower() == "n":
#...
这就是我所做的,但是我想知道这可能是什么原因?
答案 0 :(得分:5)
您确定使用的是3.2.2而不是3.2.0吗?
Windows上的Python 3.2.0中存在一个错误,从stdin读取有时会在字符串末尾留下\r
,这可以解释您所看到的内容。使用yn.strip().lower()
解决错误或更新到当前版本(3.2.3)。
具体问题被描述为http://bugs.python.org/issue11272,但如果您使用的是3.2.2,则应该已修复。
答案 1 :(得分:0)
它适用于OSX(Python 3.2.2):
yn = ""
while True:
yn = input( "---> " )
if yn.lower() != "y":
break
pu@pumbair:~$ python3.2 test.py
---> y
---> y
---> Y
---> Y
--->
pu@pumbair:~$ python3.2 test.py
---> n
pu@pumbair:~$
什么可执行文件与.py扩展名相关联?