zh648990 发表于 2022-5-12 10:15

Python if 语句中 and 和 or 的问题

本帖最后由 zh648990 于 2022-5-12 15:38 编辑

求助大佬
if 语句中多个判断是否存在的条件我想用或者来判断 为什么 not in 用 and 而 in 用 or ?

and 不应该是且的关系吗

花木成畦手自栽 发表于 2022-5-12 10:33

VAR not in (A,B,C),VAR不属于A,B,C中的任何一个,属于其中一个就是FALSE,所以是AND
VAR in (A,B,C)VAR属于A,B,C其中一个就是TRUE,所以是OR

楼主这样能理解么

海是倒过来的天 发表于 2022-5-12 10:34

if a not in (b and c and d)和    if a in b or c in d .    a 不在bcd. 和a在b 或者c在d。你清晰说出你的需求才能了解用in 还是or不是说in一定用or的。

zhaofucheng 发表于 2022-5-12 10:36

10版本用switch   其它用elif清晰一点

zh648990 发表于 2022-5-12 10:42

本帖最后由 zh648990 于 2022-5-12 10:48 编辑

海是倒过来的天 发表于 2022-5-12 10:34
if a not in (b and c and d)和    if a in b or c in d .    a 不在bcd. 和a在b 或者c在d。你清晰说出 ...
举个例子:
   
text = '这是一个测试文本'
    if '这' in text or '是' in text:
      print('真')
    else:
      print('假')

我删除字符串中的这或者是其中一个 结果是我想要的 ,但是我改成 not in随便删一个这或者是 还是打印真 不应是是假吗

zxc9989 发表于 2022-5-12 11:21

or 是只要有一个为True就会判断为True
你改成not in, 然后又删除了字符,那显然被删除的字符不在字符串text里,判断自然就是True。
建议重新学一下逻辑运算

无闻无问 发表于 2022-5-12 12:32

zh648990 发表于 2022-5-12 10:42
举个例子:
   
text = '这是一个测试文本'


这没毛病,你删除了,not in返回就是真…

练多了,就熟悉了,你得多练…

zh648990 发表于 2022-5-12 12:35

无闻无问 发表于 2022-5-12 12:32
这没毛病,你删除了,not in返回就是真…

练多了,就熟悉了,你得多练…

我只删除其中一个呀,删了是,这不是还在里面吗

heartblade 发表于 2022-5-12 14:14

本帖最后由 heartblade 于 2022-5-12 14:16 编辑

zh648990 发表于 2022-5-12 12:35
我只删除其中一个呀,删了是,这不是还在里面吗
你这个样子,程序执行到'这' not in text 的时候,判断为True,就直接返回True了,因为or后面不管是True还是False,结果都是True
OR条件只要有1个为True结果就为True
text = '是一个测试文本'
    if '这' not in text or '是' not in text:
      print('真')
    else:
      print('假')

zh648990 发表于 2022-5-12 15:37

heartblade 发表于 2022-5-12 14:14
你这个样子,程序执行到'这' not in text 的时候,判断为True,就直接返回True了,因为or后面不管是Tru ...

明白了 谢谢大佬
页: [1]
查看完整版本: Python if 语句中 and 和 or 的问题