如何在Python中的框架集中查找特定元素?
我试图在一个长框架内找到一个特定的元素,其输出如下: 收到:[01',03',3C',00',00',00',00',00',00',00',00',00',00',00',00',00',4B',00',00',00',30',30',31',30',30',4B',00',00',00',30',30',30',30',30',30',30',30',30',53',4D',41',52',54',50',00',00',00',00',00',00',00''00、00、00、00、00、00、00、00、00、7D、1F'] 这是我试图修改的代码的一部分:如何在Python中的框架集中查找特定元素?,python,Python,我试图在一个长框架内找到一个特定的元素,其输出如下: 收到:[01',03',3C',00',00',00',00',00',00',00',00',00',00',00',00',00',4B',00',00',00',30',30',31',30',30',4B',00',00',00',30',30',30',30',30',30',30',30',30',53',4D',41',52',54',50',00',00',00',00',00',00',00''00、00、00、00、00、
data = []
data.append(CMRead)
data.append((starting_address >> 8) & 0xFF)
data.append(starting_address & 0xFF)
data.append((num >> 8) & 0xFF)
data.append(num & 0xFF)
# opening a communication serial
if not self.Open():
return TIMEOUT
#send frame
if not self.SendFrame(address, data):
self.Close()
return TIMEOUT
#receive frame
if not self.ReceiveFrame(data, 2 + ((num + 7) // 8)):
self.Close()
return TIMEOUT
我需要一个机制来检查在接收帧输出中,十六进制值'53',4D',41'是否存在,但我还没有
非常感谢代码帮助!列表中的
'53'可能重复?不好?您想知道它们是否按顺序出现?还是只想知道它们在接收中?@Alex我只想知道具有十六进制输出的接收框函数中如何检查值“53”、“4D”、“41”是否存在。是否有找到值在Python中的帧中。例如ReceiveFrame.FindElement('53','4D','41'))…如果您知道“发送什么”,则接收不是随机的!您的代码异常是什么?例如:丢失数据包部分
,错误帧
,校验和(如果有)
等。请更改您的方法,因为这不是个好主意!
wanted = ['53', '4D', '41']
frames = ['01', '03', '3C', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '4B', '00', '00', '00', '30', '30', '30', '31', '30', '30', '32', '30', '4B', '00', '00', '00', '30', '30', '30', '30', '30', '30', '30', '30', '53', '4D', '41', '52', '54', '50', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '7D', '1F']
captured = [(frame in wanted) for frame in frames]
any_captured = any(captured)