如何将二进制数字附加到变量

时间:2015-11-03 16:07:59

标签: python python-2.7

如何将二进制数字附加到python中的最终变量

a = self.allcheckboxes[0].isChecked() # 1
b = self.allcheckboxes[1].isChecked() # 0
c = self.allcheckboxes[2].isChecked() # 1
d = self.allcheckboxes[3].isChecked() # 0

final_value = 010+a+b+c+d
# iam expecting something like 0101010 in binary 

2 个答案:

答案 0 :(得分:2)

我假设您只想要一个二进制查找字符串,而不是设置相关位的整数,如果是这样,您可以使用以下复选框10到14:

final_value = ''.join('1' if checkbox.isChecked() else '0' for checkbox in self.allcheckboxes[10:15])

如果需要,可以将其转换为整数并打印为十六进制,如下所示:

integer_value = int(final_value, 2)
print '{:x}'.format(integer_value)

答案 1 :(得分:0)

您可以在operator.itemgetter函数中使用operator.attrgettermap来完成一行中的所有代码,并使用str.join()加入结果:

from operator import itemgetter,attrgetter
''.join(map(attrgetter('isChecked'),itemgetter(0,1,2,3)(self.allcheckboxes)))

另请注意,python中没有二进制类型,当你得到串联字符串时,根据你的目标和你要拨打的函数,你可以将这个字符串作为二进制数。

例如,如果要将其转换为整数,可以通过将2作为 base 传递来使用int函数:

>>> int('0101',2)
5