首页 > 解决方案 > 与while循环混淆

问题描述

    ConfirmationforNewDeviceName= str(input("Please insert 'Yes' or 'No' :"))
    while (ConfirmationforNewDeviceName != "Yes" or 
        ConfirmationforNewDeviceName != "yes" or
        ConfirmationforNewDeviceName != "No" or
        ConfirmationforNewDeviceName != "no"):
        ConfirmationforNewDeviceName= str(input("Please insert 'Yes' or 'No' :"))

这是我在 Python 3 中的程序。我希望只有当我在第 1 行中得到是、是、否或没有字符串时才结束循环,否则它会继续运行。但是在给定的程序中,我创建的循环并没有结束我写的任何内容。它继续显示第 7 行的“请插入‘是’或‘否’:”。请帮助我克服这个问题。

标签: while-loop

解决方案


你需要ands,而不是ors。

如果ConfirmationforNewDeviceName"yes",请考虑一下:

"yes" != "Yes" or "yes" != "yes"

计算结果为True or False,计算结果为True。另一方面:

"yes" != "Yes" and "yes" != "yes"

评估为True and False,其评估结果符合False预期。


推荐阅读