将数字转换为固定长度的二进制
假设我得到一个1到127之间的随机数字。我把这个数字转换成二进制,并用下面的代码去掉前面的0b
部分:
key_one= int(raw_input("Enter key (0 <= key <= 127): "))
if key_one in range(128):
bin_key_one=bin(key_one)[2:]
print bin_key_one
else:
print "You have to enter key (0 <= key <= 127)"
现在我想把这个二进制数变成7个字符长,如果不够的话,就在前面加上零。我觉得我需要用一个循环,但能不能有人教我怎么做?
9 个回答
6
在Python 3.6中,新增了一个叫做f-strings的功能,现在你可以这样做:
key_one = int(input("Enter key (0 <= key <= 127): "))
if key_one in range(128):
bin_key_one = f'{key_one:07b}'
print(bin_key_one)
else:
print("You have to enter key (0 <= key <= 127)")
39
其实,Python 有一个字符串的方法叫做 .zfill()
,可以用来处理这个问题:
>>> '1'.zfill(7)
'0000001'
>>> '10010'.zfill(7)
'0010010'
97
不,你不需要这样做。
>>> '{0:07b}'.format(12)
'0001100'