python - python while - 意外结果
问题描述
if __name__ == '__main__':
val='n'
while val != 'y' or val != 'Y':
val = input("are we done ? [Y/n]: ")
exit()
并且很困惑,因为结果是
are we done ? [Y/n]: y
are we done ? [Y/n]: y
are we done ? [Y/n]: Y
are we done ? [Y/n]: Y
are we done ? [Y/n]: yes
are we done ? [Y/n]:
我虽然也许相关的问题会有所帮助,但仍然对此不满意。有人知道为什么我的第一次试验失败了吗?
解决方案
这是你的条件while val != 'y' or val != 'Y'
。这将永远是真的,即使val
是y
因为那么它不是Y
。
尝试
while val != 'y' and val != 'Y':
仅当它既不是,y
也不是 时,这才是正确的Y
。
推荐阅读
- spartacus-storefront - 斯巴达克斯全球面包屑嵌套层次结构
- java - 如何在列表视图中的 LongclickListener 上的变量中存储 Hashmap 值?
- android-studio - Gradle 是否包含在 Android Studio 中?
- javascript - 如何将文本框验证为指定模式
- swift - Swift:泛型重载,“更专业”的定义
- rust - 错误[E0658]:`cfg(doctest)` 是实验性的,可能会发生变化
- botframework - 加载包失败 提供的插件包不理解。验证提交的文件是有效的 Office 加载项包
- python - 使用字典映射python中的特定值
- html - Boostrap 4 响应式卡片组等高卡片页脚
- angular - RxJs - 结合两个 observables,结果选择器函数,zip