类似于 if a == ('b' or 'c') 的问题
如题,我想做一个判断,如果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?一定要像第二种方法那样,一个一个条件的分开表示吗?
如能解答,不胜感激!!!
Python 会先运算 ('potato' or 'tomato' or 'hero' or 'negro'),根据短路逻辑得出 'potato',而 raw_word.lower() 不等于 'potato',所以判断为 False
页:
[1]