我有8个频道,关闭时它们的值为0,打开时:
ch1 = 1
ch2 = 10
ch3 = 100
ch4 = 1000
ch5 = 10000
ch6 = 100000
ch7 = 1000000
ch8 = 10000000
但是当我问哪个频道被打开时,硬件给了我一个像
111 or 10001000
意味着ch1、ch2和ch3 | ch4和ch8分别打开
我想用一种方式来解析它,我可以编写一个类似json的文件,每个通道的状态如下
{
"ch1": "on",
"ch2": "off",
"ch1": "on"
}
我该怎么做?正确的方法是什么?你知道吗
给你:
要使用,只需调用以数字为参数的函数。它将返回一个真/假值列表,您可以遍历该列表以查看哪些通道处于打开状态,或者您可以使用chan_values()检查通道6[5]。你知道吗
现在解释一下…第一个while循环将数字解析为单独的数字。如果数字是1,则返回
True
,否则返回False
。第二个while循环使用False
填充列表,如果输入的数字不是8位(例如111)。你知道吗编辑: 将第二个while循环替换为更快的一行(
channels += [False]*(8-len(channels))
)。请注意,这两种方法实现相同的目标,并且在结果方面是等效的。你知道吗相关问题 更多 >
编程相关推荐