python - 无法理解python中一行代码中的AND运算符
问题描述
我有以下功能,基本上要求用户输入“X”或“O”的选择。我使用 while 循环不断询问用户,直到我得到“X”或“O”的答案。
def player_input():
choice = ''
while choice != "X" and choice != "O":
choice = input("Player 1, choose X or O: ")
pl1 = choice
if pl1 == "X":
pl2 = "O"
else:
pl2 = "X"
return (pl1, pl2)
上面的代码工作正常,但我完全不明白在这种特定情况下“和”是如何工作的。如果我理解正确,“和”意味着两个条件都必须为真。但是,在任何给定时间,选择只能是“X”或“O”。
请帮助我理解这一点。如果您认为这是一个愚蠢的问题,请提前道歉。我是 python 和一般编程的新手。
谢谢!
解决方案
在这种情况下,选择在进入 while 循环之前以空白开始。在 while 循环期间,要求玩家选择 X 或 O。条件强制用户输入 X 或 O。如果用户输入 Z,则条件为真,并重复循环要求另一个输入。如果用户键入 X 或 O,则条件现在返回 false 并退出 while 循环。
推荐阅读
- c# - 如何使用返回不一致结果的比较器对通用列表进行排序?
- r - 在 for 循环中填充向量时遇到问题
- latex - 多行MathJax的左对齐行
- xml - 为什么 Powershell 会输出不需要的调试字符串?
- java - SonarQube Maven Java 无法执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar
- numpy - 如何将包含积分和导数的 sympy 表达式转换为 numpy
- java - 如何使用 i18 消息处理自定义异常
- r - survfit 数据框中的错误消息以在 R 中生成生存图
- python-3.x - 如何使用 WMIC 和 Powershell 定位可执行路径
- python - 为什么使用 tesfile 执行 doctest 找不到在同一文件上定义的函数?