Converting a number to binary with a fixed length
Say I get a random number between 1 and 127. I change the number to binary and remove the 0b
from it with the fallowing code:
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)"
Now I want to make it 7-characters long by padding the beginning with zeros as necessary. I think I need to use a for loop, but can someone show me how to do it?
Solution 1:
No you don't.
>>> '{0:07b}'.format(12)
'0001100'
Solution 2:
So it happens that Python has a string method .zfill()
for that:
>>> '1'.zfill(7)
'0000001'
>>> '10010'.zfill(7)
'0010010'
Solution 3:
With Python 3.6's new f-strings, you can now do:
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)")