我試圖使文本到二進制轉換器腳本。下面是我得到了什麼..如何替換用戶的輸入?
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