首先,我有两个清单:
l1 = [chr(x) for x in range(32,160)]
l2 = [bin(x)[2:].rjust(7,'0') for x in range(128)]
第一个列出128个字符,第二个128个二进制值(7位从0000000到1111111)。
我们的想法是将任何字符串转换为二进制值。 所以我的原始代码是:
def encode(message):
for a, b in zip(l1,l2):
message = message.replace(a, b)
return message
可悲的是,我之前在“' 0'焦炭。 示例:
Input : ~
Output : 1011110
Input : ♥
Output : 0011111
Input : a
Output : 1000001
Input : 0
Output : 0000100010000
Input :
Output : 00001000100000000100010000000010001000000001000100000000100010000000010
00100000000100010000
Input : 4
Output : 00001000100000000100010000000010001000000001000100000000100010000000010
001000000001000100000010100
Input : 1
Output : 00001000100000000100010000000010001000000001000100000000100010000000010
001000000001000100000010001
Input : 0
Output : 00001000100000000100010000000010001000000001000100000000100010000000010
001000000001000100000000100010000
我确定这与0转换有关,因为在执行以下代码时它可以正常工作。
def encode(message):
for a, b in zip(l1,l2):
print message.replace(a, b)
return message
我该如何解决? 此外,我们可以看到♥已被转换,但它应该没有。到底是怎么回事?我需要的是128个不同的7位字节,可打印和全部(用于加密)。