[英]Converting integer to binary with variable number of bits
我想從給定的列表list
選擇一個數字,並從n
位表示中提取出一個位置。
我知道如果我想要8位,我需要寫
r = random.choice(list)
bin = "{0:08b}".format(r)
但我想做點什么
bin = "{0:0(self.n)b}".format(r)
其中n
是一個類成員。
我該怎么做呢?
您可以使用嵌套的{…}
來定義大小:
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開始,您將能夠使用Literal String Interpolation ,將變量名稱添加到您的字符串中。
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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.