gpt4 book ai didi

python - 嵌套的 "and/or"if 语句

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:09 24 4
gpt4 key购买 nike

我正在编写创建列表然后应用“或”和“和”条件以执行进一步操作的代码:

a= ["john", "carlos", "22", "70"]

if (("qjohn" or "carlos") in a) and (("272" or "70") in a):
print "true"
else:
print "not true"

输出:

not true

当我这样做时:

a= ["john", "carlos", "22", "70"]

if ("qjohn" or "cdarlos" in a) and ("272" or "d70" in a):
print "true"
else:
print "not true"

输出为"true"

我没有得到的是 **carlos and 70** 应该等于 true 但它打印的是“not true”。这个错误的原因是什么?谢谢

最佳答案

这两种方法都不正确。请记住,or 是一个短路运算符,因此它并没有像您认为的那样工作:

it only evaluates the second argument if the first one is false.

但是,非空字符串始终为 True,因此第一种情况仅检查第一个非空字符串的包含,而第二种情况从不执行 in 的包含检查,因此,它始终为 True

你想要的是:

if ("qjohn" in a or "carlos" in a) and ("272"  in a or "70" in a):
...

如果要测试的项目较长,您可以通过使用 any 来避免重复 oror 也会短路一次项目测试 True:

if any(x in a for x in case1) and any(x in a for x in case2):
...

关于python - 嵌套的 "and/or"if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45352597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com