我的代码中有很多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:
...
但没有成功。
答案 0 :(得分: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
。
答案 1 :(得分:1)
if message in '0357' :
...
elif message in '12468' :
...
else:
...
以更全球化的方式:
if value in [elem0, elem1, ... ]:
...