如何让python中的if-elif-else语句更节省空间?

Nev*_*and 4 python optimization

我的代码中有很多if-elif-else语句


if message == '0' or message == '3' or message == '5' or message == '7':
   ...
elif message == '1' or message == '2' or message == '4' or message == '6' or message == '8':
   ...
else:
   ...

是否可以以更节省空间的方式格式化?

我这样试过:


if message == '0' or '3' or '5' or '7':
   ...
elif message == '1' or '2' or '4' or '6' or '8':
   ...
else:
   ...

但没有成功.

Tim*_*ker 6

if message in ("0", "3", "5", "7"):
    ...
elif message in ...
Run Code Online (Sandbox Code Playgroud)

会是一种方式.

如果message总是一个字符长,你也可以使用

if message in "0357":
    ....
Run Code Online (Sandbox Code Playgroud)

但是,如果message == "35"因此警告也是如此.


(编辑)

简要解释为什么你的方法不起作用:

if message == '0' or '3' or '5' or '7':
Run Code Online (Sandbox Code Playgroud)

被解释为

if (message == '0') or '3' or '5' or '7':
Run Code Online (Sandbox Code Playgroud)

因此总是成功,因为'3'评估True.