一、源码
源码已经做了简化,仅供展示用。
data = [0x0E, 0x98, 0x01, 0xEC, 0x1F, 0x0C, 0x00, 0x00, 0x00, 0x22, 0x12, 0x02, 0x0B, 0xFF, 0xFF, 0xFD, 0x03]
if (data[0:2] == 0x0E, 0x98):
print("True!!")
elif (data[0:2] == 0x04, 0x09):
print("888")
else:
print('False!!')
二、问题
在还未运行上述代码时,发现如下图所示的代码背景变黄的异常情况,但没有报错。
运行后,当满足elif和else的条件时,两者里面的打印都未执行。Pycharm提示“Unreachable code”。
三、解决方法
1、更改判断条件
如下图所示。
此种方法是正确的解决方法。
2、将elif和else都改成if
如下图所示。
此种方法虽然可以规避变黄报错,但却是错误的解决方法。
四、问题原因
我只知道方法1是正确的解决办法。我的源码那种写法肯定有问题,但是我不清楚具体问题在什么地方,有清楚的大佬可以留言交流。