从字典中选择错误的键

wrong key selection from dictionary

所以我编写了一个程序,将字母从句子转换为数字。为了了解数字是在同一个词中还是另一个词中,我用“-”和“-”进行了区分。如果一个单词在同一行中,则数字由“-”分隔,如果它们在另一个单词中,则数字由“-”分隔。喜欢你好 => 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")

我不明白为什么会这样。它应该取整数而不是一个一个地取每个数字。请帮忙。

此外,我希望它能将整个句子打印在一个 line/string 中。但我做不到。也请帮忙。 谢谢

我认为你是 over-complicating 的东西。为什么嵌套循环?

这似乎符合您的要求:

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='')

要将数字转换为单词,请使用这个。

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)