The*_*ain 3 python if-statement behavior
美好的一天!
今天我用Python 3.2.2编写了一个小脚本,这个简单的代码决定给我带来麻烦.
def main():
yn = ""
#...
while True:
#...
yn = input( "---> " )
if yn.lower() != "y":
break
Run Code Online (Sandbox Code Playgroud)
现在,这个代码应该是非常明显的,但是当我在Windows 7上运行它时,它工作得非常好,或者当我双击桌面上的脚本图标并打开它时,天气与否无关紧要我输入"y"它关闭,当然这是一个简单的解决方案:
if yn.lower() == "n":
#...
Run Code Online (Sandbox Code Playgroud)
这就是我所做的,但我想知道这可能是什么原因?
你确定你使用的是3.2.2而不是3.2.0吗?
在Windows上的Python 3.2.0中存在一个错误,从stdin读取有时会\r在字符串的末尾留下一个错误,这将解释您所看到的内容.使用yn.strip().lower()到bug或解决方法更新到最新版本(3.2.3).
具体问题描述为http://bugs.python.org/issue11272,但如果您使用的是3.2.2,则应该已修复.
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |