多个如果不在python中工作

wor*_*rer -1 python if-statement

我有这个代码:

Split = Message.Body.split()
split = Split

if 'a' or 'b' or 'b' in split:
    time.sleep(2)
    print '1'
elif 'c' or 'd' in split:
    time.sleep(2)
    print '2'
elif 'e' or 'f' in split:
    time.sleep(2)
    print '3'
else:
    time.sleep(2)
    print '4'
Run Code Online (Sandbox Code Playgroud)

我已经使用split将单词与我的消息分开,我想要收到某个消息来打印某个单词,但现在它只打印1而不管输入.

Mik*_*ler 5

这就是问题:

>>> 'a' or 'b' or 'b'
'a'
Run Code Online (Sandbox Code Playgroud)

这是解决方案:

if 'a' in split or 'b' in split:
Run Code Online (Sandbox Code Playgroud)

或者,如果您有许多信件要检查:

if any(x in split for x in 'ab'):
Run Code Online (Sandbox Code Playgroud)

在这种情况下效果更好:

if any(x in split for x in 'abcdefg'):
Run Code Online (Sandbox Code Playgroud)

  • 我冒昧地插入了正确的`if`语句.如果它不是您想要的,请将其删除 (2认同)