Я пытаюсь создать конвертер текста в двоичный . Вот что у меня есть ..

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

Допустим, пользователь вводит слово «Дерево», я хочу преобразовать каждую букву в двоичную и отобразить ее. Я надеюсь, что вы можете понять, что я пытаюсь сделать здесь. PS . Я немного новичок! :)

0
Apost 29 Авг 2017 в 02:28

3 ответа

Лучший ответ

То, как вы пытались решить проблему, не идеально. Вы загнали себя в угол, присвоив двоичные значения переменным.

С переменными вам придется использовать eval() чтобы динамически получить их значение:

result = ' '.join((eval(character)) for character in myString)

Однако имейте в виду, что общее согласие относительно использования eval() и подобных функций - не . Гораздо лучшим решением было бы использовать словарь для сопоставления двоичного файла. значения вместо использования переменных:

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
stybl 28 Авг 2017 в 23:41

Дерзкая строчка, которая печатает каждый символ на новой строке с надписью

[print(val, "= ", format(ord(val), 'b')) for val in input()]
#this returns a list of "None" for each print statement

Аналогичным образом дерзкая однострочная печать с произвольным разделителем, заданным значением sep print:

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

Скопируйте и вставьте в ваш любимый переводчик :)

0
Erich 28 Авг 2017 в 23:48

Проверьте функцию ord:

userinput = input()
binaries = [ord(letter) for letter in userinput]
0
hd1 28 Авг 2017 в 23:31