我试图使文本到二进制转换器脚本。下面是我得到了什么..如何替换用户的输入?
userInput = input()
a = ('00000001')
b = ('00000010')
#...Here I have every remaining letter translated in binary.
z = ('00011010')
所以我们可以说用户键入单词“树”,我想在每一个二进制转换信并显示。我希望你能理解我想在这里做什么。 PS。我有点新手! :)
我试图使文本到二进制转换器脚本。下面是我得到了什么..如何替换用户的输入?
userInput = input()
a = ('00000001')
b = ('00000010')
#...Here I have every remaining letter translated in binary.
z = ('00011010')
所以我们可以说用户键入单词“树”,我想在每一个二进制转换信并显示。我希望你能理解我想在这里做什么。 PS。我有点新手! :)
你试图解决问题的方式并不理想。通过将二进制值分配给变量,您已将自己置于一个角落。
有了变量,你将不得不使用eval()
动态获取它们的价值:但是
result = ' '.join((eval(character)) for character in myString)
被告知,关于使用eval()
和类似功能的普遍共识是不。一个更好的解决办法是使用dictionary映射,而不是使用变量的二进制值,:
characters = { "a" : '00000001', "b" :'00000010' } #etc
result = ' '.join(characters[character] for character in myString)
理想的解决方案然而,是使用内置的ord()
功能:
result = ' '.join(format(ord(character), 'b') for character in myString)
谢谢!看起来像一本字典是我正在寻找的! – Apost
检查ord功能:
userinput = input()
binaries = [ord(letter) for letter in userinput]
面露一个班轮,打印在新行的每个字符与标签
[print(val, "= ", format(ord(val), 'b')) for val in input()]
#this returns a list of "None" for each print statement
同样面露一个班轮打印与印刷的月数值指定任意分隔符:
print(*[str(val) + "= "+str(format(ord(val), 'b')) for val in input()], sep = ' ')
复制并粘贴到您最喜爱的解释:)的
可能的复制[转换字符串为二进制蟒蛇](https://stackoverflow.com/questions/18815820/convert-string-to-binary-in-python) – TheoretiCAL