当前位置:  开发笔记 > 编程语言 > 正文

Python:无法在两个连续条件下终止"while"循环

如何解决《Python:无法在两个连续条件下终止"while"循环》经验,为你挑选了1个好方法。

我不知道是什么问题,但如果条件不足,我不能结束一个while循环.让我展示一下代码:

while True:
    k = input ("Please enter 'hello': ")
    if k == "hello":
        m = input ("Are your Sure? (Y/N): ")
        if m == "Y" or "y" or "yes" or "Yes":
            break

现在,在第二个提示之后,即使我输入no或任何其他内容,while循环仍然结束.我只想在第二次确认后结束它.编码中的错误是什么?



1> The6thSense..:

这就是内部发生的事情.

你的代码:

m == "Y" or "y" or "yes" or "Yes"

Python解读:

(m == "Y" )or ("y" or "yes") or "Yes"

("y" or "yes")将总是产生y since it is not a falsey value然后再("y" or "yes") or "Yes"改为这个"y" or "Yes"相同的值,所以最后(m == "Y" )or ("y" or "yes") or "Yes"改为(m == "Y" )or "y"

为避免这种情况,您可以单独检查所有条件或inBenC说明

或者更简单

m.lower() in "yes" # Note that it also True if m is e or es or s etc..

      or

"yes".startwith(m.lower()) # This work perfectly as per my test cases

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有