2017-08-28 38 views
0

我试图使文本到二进制转换器脚本。下面是我得到了什么..如何替换用户的输入?

userInput = input() 
a = ('00000001') 
b = ('00000010') 
#...Here I have every remaining letter translated in binary. 
z = ('00011010') 

所以我们可以说用户键入单词“树”,我想在每一个二进制转换信并显示。我希望你能理解我想在这里做什么。 PS。我有点新手! :)

+1

可能的复制[转换字符串为二进制蟒蛇](https://stackoverflow.com/questions/18815820/convert-string-to-binary-in-python) – TheoretiCAL

回答

0

你试图解决问题的方式并不理想。通过将二进制值分配给变量,您已将自己置于一个角落。

有了变量,你将不得不使用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) 
+0

谢谢!看起来像一本字典是我正在寻找的! – Apost

0

检查ord功能:

userinput = input() 
binaries = [ord(letter) for letter in userinput] 
0

面露一个班轮,打印在新行的每个字符与标签

[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 = ' ') 

复制并粘贴到您最喜爱的解释:)的

相关问题