有一个代码:
datap1 = ["a3","a2","b2"]
if "a1" in datap1:
print("1")
if "a2" in datap1:
print("2")
if "a3" in datap1:
print("3")
if "b1" in datap1:
print("4")
if "b2" in datap1:
print("5")
if "b3" in datap1:
print("6")
if "c1" in datap1:
print("7")
if "c2" in datap1:
print("8")
if "c3" in datap1:
print("9")
if ("a1" and "b1" and "c1") or ("a2" and "b2" and "c2") or ("a3" and "b3" and "c3") or ("a1" and "a2" and "a3") or ("b1" and "b2" and "b3") or ("c1" and "c2" and "c3") or ("a1" and "b2" and "c3") or ("c1" and "b2" and "a3") in list(datap1):
print('Игрок выиграл!')
exit()
else:
print("game over")
从逻辑上讲,它应该在游戏结束时显示,玩家赢了!
你能帮忙写代码吗(这样它只输出玩家赢了!)
并请解释如何使用and
和or
在列表中实现条件。
提前致谢!
附言。谷歌搜索,没有找到答案。
解决问题的最简单方法是这样的:
至于 and 和 or 运算符,您只需要了解它们与
и
/или
在普通语音中的工作方式不同。它们的工作方式有明确的规则,您只需要阅读并记住这些规则。并且不要试图将短语从俄语翻译成python。你可以这样做(我不假装是最方便的选择))):
您的代码的正确检查应如下所示:
让它变得很可怕,但在这个版本中,每个带有条件的事件都会被检查。至于
and
/or
- 在这里,最初,在您的版本中,执行的并不完全符合您的预期。此构造:("a1" and "b1" and "c1")
执行特定字符串之间的比较。因此,您拥有所有选项中的“最大”字符串,而不是所需组合中的字符串组合。