鱼C论坛

 找回密码
 立即注册
查看: 1246|回复: 1

类似于 if a == ('b' or 'c') 的问题

[复制链接]
发表于 2020-8-16 10:49:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,我想做一个判断,如果raw_word是一下四个单词的话,就+es
下面第一个代码,输入potato,打印出来potatoes;输入tomato,打印出来就是tomatos了。
raw_word = 'tomato'
if raw_word.lower() == ('potato' or 'tomato' or 'hero' or 'negro'):       # 这个不行
     print(raw_word + 'es')
else:
     print(raw_word + 's')
下面第二个代码,改了if后面的条件,把几个条件分开表示,用or分隔开,输入tomato,打印出来就是tomatoes了。
raw_word = 'tomato'
if raw_word.lower() == 'potato' or raw_word.lower() == 'tomato':    # 这个可以
     print(raw_word + 'es')
else:
     print(raw_word + 's')
我类比方法.endswith(),尝试使用了元组,但是好像不行,pycharm提示说括号冗余。


想请教大神:为什么第一个代码里面if那一句,判断为False?一定要像第二种方法那样,一个一个条件的分开表示吗?

如能解答,不胜感激!!!



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-16 10:50:57 | 显示全部楼层
Python 会先运算 ('potato' or 'tomato' or 'hero' or 'negro'),根据短路逻辑得出 'potato',而 raw_word.lower() 不等于 'potato',所以判断为 False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 07:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表