Python if 语句中 and 和 or 的问题
本帖最后由 zh648990 于 2022-5-12 15:38 编辑求助大佬
if 语句中多个判断是否存在的条件我想用或者来判断 为什么 not in 用 and 而 in 用 or ?
and 不应该是且的关系吗
VAR not in (A,B,C),VAR不属于A,B,C中的任何一个,属于其中一个就是FALSE,所以是AND
VAR in (A,B,C)VAR属于A,B,C其中一个就是TRUE,所以是OR
楼主这样能理解么 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的。 10版本用switch 其它用elif清晰一点 本帖最后由 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随便删一个这或者是 还是打印真 不应是是假吗
or 是只要有一个为True就会判断为True
你改成not in, 然后又删除了字符,那显然被删除的字符不在字符串text里,判断自然就是True。
建议重新学一下逻辑运算 zh648990 发表于 2022-5-12 10:42
举个例子:
text = '这是一个测试文本'
这没毛病,你删除了,not in返回就是真…
练多了,就熟悉了,你得多练… 无闻无问 发表于 2022-5-12 12:32
这没毛病,你删除了,not in返回就是真…
练多了,就熟悉了,你得多练…
我只删除其中一个呀,删了是,这不是还在里面吗 本帖最后由 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('假') heartblade 发表于 2022-5-12 14:14
你这个样子,程序执行到'这' not in text 的时候,判断为True,就直接返回True了,因为or后面不管是Tru ...
明白了 谢谢大佬
页:
[1]