dic = {'A':'D','N':'Q','B':'E','O':'R','C':'F','P':'S','D':'G','Q':'T','E':'H','R':'U','F':'I','S':'V','G':'J','T':'W',
'H':'K','U':'X','I':'L','V':'Y','J':'M','W':'Z','K':'N','X':'A','L':'O','Y':'B','M':'P','Z':'C'}
user_input = input("Enter the word: ").upper()
Key=str(user_input)
print (dic.get(Key))
这是我的字典,但我得到的唯一答案是None
我试图改变这个结尾,但问题仍然存在:(
user_input = input("Enter the word: ").upper()
print (dic.get(user_input))
有人知道怎么做吗?
看来你误解了字典的工作原理。
如果我猜对了,当你输入ABCD
时,你想要得到DEFG
。您目前所做的工作仅适用于单个字母(如果您运行dic.get('A')
,您将有'D'
,但dic.get('ABC')
将输出None
,因为'ABC'
不是密钥)。
我相信您想要的是执行某种替换密码,这很容易用str.maketrans
和str.translate
完成:
dic = {'A':'D','N':'Q','B':'E','O':'R','C':'F','P':'S','D':'G',
'Q':'T','E':'H','R':'U','F':'I','S':'V','G':'J','T':'W',
'H':'K','U':'X','I':'L','V':'Y','J':'M','W':'Z','K':'N',
'X':'A','L':'O','Y':'B','M':'P','Z':'C'}
# define a translation table
table = str.maketrans(dic)
# get user input and translate
user_input =input("Enter the word: ").upper()
print(user_input.translate(table))
的例子:
Enter the word: ABCD
DEFG
您需要遍历字符串中的值:
dict_a={'A':'D','N':'Q','B':'E','O':'R','C':'F','P':'S','D':'G','Q':'T','E':'H','R':'U','F':'I','S':'V','G':'J','T':'W',
'H':'K','U':'X','I':'L','V':'Y','J':'M','W':'Z','K':'N','X':'A','L':'O','Y':'B','M':'P','Z':'C'}
user_input =(input("Enter the word: ")).upper()
key=user_input
print(''.join([dict_a.get(k) for k in key]))
不要将dict
命名为dict
,给它一个与默认类不冲突的名称。