我试图这样做 -
word = 'hello'
if 'a' or 'c' in word:
continue
elif 'e' in word:
continue
else:
continue
只有在我没有或没有的情况下才有效。字符串是一个单词。
答案 0 :(得分:6)
此:
if 'a' or 'c' in word:
continue
相当于:
if ('a') or ('c' in word):
continue
'a'
在布尔上下文中始终为True
,因此始终会因短路而执行continue
。
解决方案:
if any(c in word for c in ('a', 'c')):
continue
答案 1 :(得分:1)
将if 'a' or 'c' in word:
替换为if 'a' in word or 'c' in word
。通常,您必须为正在测试的每个字符提供in word
。您也可以使用any
,但由于您的if
很简单,因此您只需使用上述格式即可。
答案 2 :(得分:1)
1)
它应该是if 'a' in word or 'c' in word:
2)continue
会引发SyntaxError
,因为你没有在循环中使用它。如果您不执行任何操作,则可以使用pass
以外的continue
答案 3 :(得分:0)
您可以使用any
内置函数,如下所示:
any(i in ('a', 'c') for i in word)