如何在Python中节省空间地写if-elif-else语句?
我在代码里有很多的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:
...
但是没有成功。
2 个回答
1
if message in '0357' :
...
elif message in '12468' :
...
else:
...
if value in [elem0, elem1, ... ]:
...
从更广泛的角度来看:
6
if message in ("0", "3", "5", "7"):
...
elif message in ...
这是一种方法。
如果 message
总是只有一个字符长,你也可以使用
if message in "0357":
....
但如果 message == "35"
也成立,那就会出现警告。
(编辑)
简单解释一下为什么你的方法不奏效:
if message == '0' or '3' or '5' or '7':
被解释为
if (message == '0') or '3' or '5' or '7':
因此 总是 成功,因为 '3'
的值是 True
。