Converting a number to binary with a fixed length
假设我得到一个介于1和127之间的随机数。我将数字改为二进制,并用fallowing代码从中删除
1 2 3 4 5 6 7 | 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个字符长,必要时用零填充开头。我想我需要使用for循环,但是有人能告诉我怎么做吗?
不,你没有。
1 2 | >>> '{0:07b}'.format(12) '0001100' |
因此,python有一个字符串方法
1 2 3 4 | >>> '1'.zfill(7) '0000001' >>> '10010'.zfill(7) '0010010' |
使用Python3.6的新F字符串,现在可以执行以下操作:
1 2 3 4 5 6 7 | 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)") |
试试这个:
1 2 | for i in range(1, 127): '0'*(7-len(bin(i)[2:]))+bin(i)[2:] |