所以我寫了一個程式,將字母從句子轉換為數字。為了理解數字是在同一個詞中還是在另一個詞中,我用“-”和“ -”進行了區分。如果一個單詞在同一行中,則數字用“-”分隔,如果它們在另一個單詞中,則用“ -”分隔。就像你好 => 8-5-*-8-5-。
現在我正在撰寫一個程式來做相反的事情,即使用字典將數字轉換為字母。我是這樣寫字典的——
Dictionary = {"26" : "z","25" : "y","24" : "x","23" : "w","22" : "v","21" : "u","20" : "t","19" : "s","18" : "r","17" : "q","16" : "p","15" : "o","14" : "n","13" : "m","12" : "l","11" : "k","10" :"j","1" : "a","2" : "b","3" : "c","4" : "d","5" : "e","6" : "f","7" : "g","8" : "h","9" : "i","*" : " "}
user_input = input("Please Enter a message: ")
count = user_input.count("-")
individual_number = user_input.split("-")
for i in range(0 , count):
for number in individual_number[i]:
individual_number[i] = individual_number[i].replace(number, Dictionary[number])
print(individual_number[i])
現在它適用于 1 - 9 的數字,但對于 10 - 26,它不起作用。例如 -
8-9-*-2-6- => h
i
b
f
但是這個也一樣——
8-9-*-26- => h
i
bf (This should have been "Z")
我不明白為什么會這樣。它應該取整個數字,而不是一個一個地取每個數字。請幫忙。
另外,我希望它在一行/字串中列印整個句子。但我無法讓它去做。也請幫忙。謝謝
uj5u.com熱心網友回復:
要將數字轉換為單詞,請使用這個。
Dictionary = {"26" : "z","25" : "y","24" : "x","23" : "w","22" : "v","21" : "u","20" : "t","19" : "s","18" : "r","17" : "q","16" : "p","15" : "o","14" : "n","13" : "m","12" : "l","11" : "k","10" :"j","1" : "a","2" : "b","3" : "c","4" : "d","5" : "e","6" : "f","7" : "g","8" : "h","9" : "i","*" : " "}
user_input = input("Please Enter a message: ")
user_input = user_input.split('-')
output = ''
for a in user_input:
try:
output =Dictionary[a]
except KeyError:
output =''
print(output)
對于單詞到數字,請使用這個。
Dictionary = {"26" : "z","25" : "y","24" : "x","23" : "w","22" : "v","21" : "u","20" : "t","19" : "s","18" : "r","17" : "q","16" : "p","15" : "o","14" : "n","13" : "m","12" : "l","11" : "k","10" :"j","1" : "a","2" : "b","3" : "c","4" : "d","5" : "e","6" : "f","7" : "g","8" : "h","9" : "i","*" : " "}
Dictionary_ = {value:key for key,value in Dictionary.items()}
user_input = input("Please Enter a message: ")
output = ''
for a in user_input:
try:
output =Dictionary_[a]
output ='-'
except KeyError:
output =''
output = output[:-1]
print(output)
uj5u.com熱心網友回復:
我認為你把事情復雜化了。為什么是嵌套回圈?
這似乎做你想做的事:
Dictionary = {"26" : "z","25" : "y","24" : "x","23" : "w","22" : "v","21" : "u","20" : "t","19" : "s","18" : "r","17" : "q","16" : "p","15" : "o","14" : "n","13" : "m","12" : "l","11" : "k","10" :"j","1" : "a","2" : "b","3" : "c","4" : "d","5" : "e","6" : "f","7" : "g","8" : "h","9" : "i","*" : " "}
user_input = input("Please Enter a message: ")
individual_number = user_input.split("-")
for number in individual_number:
print(Dictionary[number],end='')
uj5u.com熱心網友回復:
與其對字典進行硬編碼,不如使用字串模塊和字典理解來構建它。
將您的字串拆分為連字符并嘗試在您的字典中查找。使用 get() 以防字串中出現意外情況
Dictionary = {str(i 1): chr(ord('a') i) for i in range(26)}
val = '8-9-*-26-'
print(''.join(Dictionary.get(v, ' ') for v in val.split('-')))
輸出:
hi z
筆記:
拆分串列中不在字典中的任何標記都將導致 ' '
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/469266.html
標籤:Python python-3.x 字典
下一篇:根據公共鍵合并字典串列
