2017-08-28 59 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 = ' ') 

複製並粘貼到您最喜愛的解釋:)的

相關問題