Python 使用可变位数将整数转换为二进制

Python 使用可变位数将整数转换为二进制,python,Python,我想从给定的列表中选择一个数字,并从n位表示中提取一个的位置 我知道如果我想要8位,我需要写 r = random.choice(list) bin = "{0:08b}".format(r) 但我想做点像 bin = "{0:0(self.n)b}".format(r) 其中n是类成员 如何执行此操作?您可以使用嵌套的a{…}来定义大小: bin = "{0:0{1}b}".format(r, self.n) 使用Py2.7+时,如果您发现清洁剂,您可以省略这些数字: bin = "{:

我想从给定的列表中选择一个数字,并从
n
位表示中提取一个的位置

我知道如果我想要8位,我需要写

r = random.choice(list)
bin = "{0:08b}".format(r)
但我想做点像

bin = "{0:0(self.n)b}".format(r)
其中
n
是类成员


如何执行此操作?

您可以使用嵌套的a
{…}
来定义大小:

bin = "{0:0{1}b}".format(r, self.n)
使用Py2.7+时,如果您发现清洁剂,您可以省略这些数字:

bin = "{:0{}b}".format(r, self.n)
例如:

>>> "{:0{}b}".format(9, 8)
'00001001'

从python3.6开始,您将能够使用,将变量名添加到字符串中

In [81]: pad,num = 8,9

In [82]: f"{num:0{pad}b}"
Out[82]: '00001001'
使用str.format,还可以使用名称:

In [92]: pad,num = 8,9

In [93]: "{n:0{p}b}".format(n=num, p=pad)
Out[93]: '00001001'

我还以为这是愚人节玩笑的候选…虽然NB:3.6不会发布