如何替换用户的输入?

时间:2017-08-28 23:28:15

标签: python

我正在尝试制作 Text to Binary 转换器脚本。这就是我所拥有的......

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

因此,让我们说用户输入单词" Tree",我想转换为二进制的每个字母并显示它。我希望你能理解我在这里要做的事情。 PS。我有点新手! :)

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

检查ord功能:

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

答案 2 :(得分:0)

厚脸皮的单行,在带有标签

的新行上打印每个字符
[print(val, "= ", format(ord(val), 'b')) for val in input()]
#this returns a list of "None" for each print statement
使用print的sep值指定的任意分隔符打印同样厚脸皮的单行内容:

print(*[str(val) + "= "+str(format(ord(val), 'b')) for val in input()], sep = ' ')

复制并粘贴到您最喜欢的口译员:)