在Python字典中使用for循环向朋友打印个人消息但显示keyerror?

问题描述 投票:0回答:1

我正在尝试循环浏览一本字典,其中包含“朋友的名字”和他们最喜欢的语言:

favourate_language = {
    'yousuf': 'python',
    'jazam': 'C',
    'abu talib': 'C++',
    'abu hurayrah': 'Go',
    'umer': 'R',
    'kasim': 'javascript'
    }

之后,我尝试循环浏览这本字典,以便当出现特定名称时,将为该朋友打印一条个人消息:

for name in favourate_language.keys():
    print(name)

# Displays personal message.
friends = ['yousuf', 'umer']

for name in favourate_language.keys():
    print(name.title())
    
    if name in friends:
        print('Assalamalaikum, ' + 
        name.title() + 
        "I see your favourate language is " + 
        favourate_language[name.title()] + "!")

但它向我显示了“yousuf”一词的关键错误:

Yousuf
Traceback (most recent call last):
  File "F:\Farhan anwar\python\users.py", line 40, in <module>
    favourate_language[name.title()] + "!")
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
KeyError: 'Yousuf'

我尝试检查名称“yousuf”是否拼写错误或大小写错误,但它仍然显示相同的错误。

我对结果的期望是:

Yousuf
Muhammed
Assalamalaikum! Muhammed, I see your favourate language is C!
Abu Hurayrah
Ali
Assalamalaikum! Ali, I see your favourate language is Javascript!

但是我没能得到想要的结果,你能解决这个小问题吗?

python python-3.x dictionary for-loop keyerror
1个回答
0
投票
favourate_language = {
'abc': 'python',
'xyz': 'C',
'abc xyz': 'C++',
'pqr mnq': 'Go',
'edc': 'R',
}
# Displays personal message.
friends = ['abc', 'edc']
for name in favourate_language.keys():
    print(name.title())
    if name in friends:
        print('Good Morning, ' + 
        name.title() + 
        "I see your favourate language is " + 
        favourate_language[name] + "!")

名字是字典中的关键。 不要在键上使用方法 title() ,它以标题格式返回 strign 。

favourate_language[name]
© www.soinside.com 2019 - 2024. All rights reserved.