fineconey 发表于 2022-8-10 22:07:33

关于in的操作符的疑问

title='这里有动图'


if ('gif' or 'GIF' or '动图' or'想法')in title:
    print(title)
else:
    print('不存在')


为什么会显示【不存在】呢。

临时号 发表于 2022-8-10 22:10:35

title='这里有动图'

if 'gif'in title or 'GIF' in title or '动图' in title or '想法' in title:
    print(title)
else:
    print('不存在')

临时号 发表于 2022-8-10 22:12:28

你不要以为or和in像*和+一样有乘法分配律

liuzhengyuan 发表于 2022-8-10 22:12:51

title='这里有动图'

exist = False
for i in ('gif', 'GIF', '动图', '想法'):
    if title.find(i) != -1:
      exist = True
      break
   
if exist:
    print(title)
else:
    print("不存在")

fineconey 发表于 2022-8-10 22:13:39

临时号 发表于 2022-8-10 22:10


解惑了,好像是,一个括号里不能用太多的or吧

liuzhengyuan 发表于 2022-8-10 22:14:14

fineconey 发表于 2022-8-10 22:13
解惑了,好像是,一个括号里不能用太多的or吧

不是不能用太多,是不能用

临时号 发表于 2022-8-10 22:16:42

fineconey 发表于 2022-8-10 22:13
解惑了,好像是,一个括号里不能用太多的or吧

你不要以为or和in像*和+一样有乘法分配律

临时号 发表于 2022-8-10 22:18:11

fineconey 发表于 2022-8-10 22:13
解惑了,好像是,一个括号里不能用太多的or吧

or会去找为True的值
所以'gif' or 'GIF' or '动图' or'想法'的值其实是'gif'
页: [1]
查看完整版本: 关于in的操作符的疑问