我想用我用LIGHTx命名的布尔变量来构造一些二进制信号系统。你知道吗
LIGHT1 = True
LIGHT2 = True
LIGHT3 = False
LIGHT4 = False
接下来,我将这些变量嵌套到一个列表中,以供将来计算
signal = [LIGHT1, LIGHT2, LIGHT3, LIGHT4]
目前,我正在使用来自Python: Boolean List to Binary String和Convert base-2 binary number string to int的思想将列表转换为int number,这是我的信号。这里,[1,1,0,0]表示12。你知道吗
In [97]: boolList2BinString(signal)
Out[97]: 12
我的问题是:
signal = [LIGHT1, LIGHT2, LIGHT3, LIGHT4]
?Whitch的意思是,在我剩下的代码中,我只需要运行LIGHTx = xxxx
和boolList2BinString(signal)
。(也许像C++的指针一样?)你知道吗[更新]
请排除在“boolList2BinString”函数中构建“signal”列表的方式。你知道吗
原件:
def boolList2BinString(lst):
return int('0b' + ''.join(['1' if x else '0' for x in lst]), 2)
建筑内部:
def boolList2BinString():
osignal = [LIGHT1 , LIGHT2 , LIGHT3 , LIGHT4 ]
return int('0b' + ''.join(['1' if x else '0' for x in signal ]), 2)
提前谢谢!你知道吗
也许你只需要一些包装纸。你知道吗
然后您只需将每个灯光的状态更改为LIGHT1.true()或LIGHT1.false(),
signal
列表中的值将自动更改。你知道吗当然,命名方法可以改变。你知道吗
您可以使用一个特殊的属性类来设置整数中的位。你知道吗
举个例子:
您可以简单地使用:
(在Python2.7和Python3.5上测试)
您可以创建一个类来保存布尔值,然后它就像指针一样
然后使用轻。快()获取值,或灯光.set()设置值
显示集合的示例:
相关问题 更多 >
编程相关推荐