while-loop - 与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 行的“请插入‘是’或‘否’:”。请帮助我克服这个问题。
解决方案
你需要and
s,而不是or
s。
如果ConfirmationforNewDeviceName
是"yes"
,请考虑一下:
"yes" != "Yes" or "yes" != "yes"
计算结果为True or False
,计算结果为True
。另一方面:
"yes" != "Yes" and "yes" != "yes"
评估为True and False
,其评估结果符合False
预期。
推荐阅读
- twitter - 如何检测从官方帐户发布的推文?
- node.js - 是否可以在不使用全局文件夹的情况下运行 node.js CL 应用程序?
- angular - 从父级的ajax调用接收数据后如何更新子组件
- express - 为什么 pug 页面不能在 express js 中呈现
- openlayers - Openlayers API 文档
- c# - MIN、MAX 堆叠图表中的指示(在这里停留了一个月..)
- c++ - 如何将 std::vector 设置为模板的默认参数?
- python - 停止将整个 pyhive 查询记录到日志文件
- php - 两者和形式
不能一起工作?在 html PHP - c# - Visual Studio 2013 的自定义代码分析