试图制作一个文本到二进制的转换器-不起作用



我正在尝试用Python制作一个文本到二进制的转换器,但我无法实现大写字母的转换
例如,小写a的输出应该是01100001,但当我将其设为大写A时,它只显示01000000

inputStr = input("text: ")
alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
for i in inputStr:
binary = [0,0,0,0,0,0,0,0]
if i == " ":
binary[2] = 1
for x in range(len(binary)):
print (binary[x], end = "")
else:
low = i.islower()
position = 0
binary[1] = "1"
if low:
binary[2] = "1"
for x in range(len(alphabet)):
if alphabet[x] == i:
position = x+1
#intentially not elif statements
if position - 16 >= 0:
binary[3] = "1"
position -= 16
if position - 8 >= 0:
binary[4] = "1"
position -= 8
if position - 4 >= 0:
binary[5] = "1"
position -= 4
if position - 2 >= 0:
binary[6] = "1"
position -= 2
if position - 1 >= 0:
binary[7] = "1"
position -= 1
for x in range(len(binary)):
print(binary[x], end = "")

在第15行进行比较时使用if alphabet[x] == i.lower():

如果可以的话,可以使用内置函数来解决问题。

要将字母转换为ASCII表示形式,请使用:

A_in_ASCII = ord('A') # 65

然后,要获得二进制表示,请使用:

A_in_binary = bin(A_in_ASCII) # '0b1000001'

然后,您可以像这样清除输出,方法是删除"0b"前缀并将其转换为int:

output = int(A_in_binary[2:]) # 1000001

最新更新