如图所示问题出现的地方,names为什么既可以在这里表示人名也可以用来表示他们人对应的喜欢语言?
[name]在你提供的代码里应该是[names],它是第二个for循环里遍历字典favorite_languages里的所有的键的当前键对应的值,具体分析如下:
表示人名的是第一个for循环的name,它比第二个for循环里names少了一个字母s,它表示的是遍历favorite_languages字典时对应的每一个键,也就是人名;
表示喜欢的语言的是第二个for循环里的names,它比第一个for循环的name多了一个字母s,它表示的也是遍历favorite_languages字典里的所有的键(favorite_languages.keys())的当前的键名(也是人名),然后用这个键来取出favorite_languages字典的对应的值,也就是喜欢的语言,并调用title()方法来将对应的值里的所有单词首字母来大写。
二者是两个不同的变量,虽然都是表示favorite_languages字典里的键,但因为使用而表现出不同的作用。
参考链接:
Python 字典中 keys()和items()方法_呀哈啰的博客-CSDN博客
Python title()方法 | 菜鸟教程
favorite_languages={
'Jen':'python',
'Hellen':'c',
'Bbo':'c++',
'Mike':'python',
'phili':'java',
}
for name ,languages in favorite_languages.items():
print(f'{name} likes {languages} best')
print(favorite_languages.keys())
friends=['phili','None']
# https://ask.csdn.net/questions/7840696?spm=1001.2014.3001.5505
for names in favorite_languages.keys():
print(names)
print(f'Hi,{names.title()}')
if names not in friends:
# https://www.runoob.com/python/att-string-title.html
language= favorite_languages[names].title()
print(f'\t{names.title()}, I see you love {language}')