如何解决Python速成课程:在字典的for循环中包含if语句
我是 Python 新手,一月底刚开始学习 Python。我目前在 Python 速成课程(第 6 章:词典)的第 110 页。在收藏夹语言程序中,我尝试在字典的 for 循环中包含一个 if 语句,以使用 len(languages) 方法查看每个用户有一种以上最喜欢的语言,然后根据用户的语言数量产生不同的结果。这是我的代码和结果:
**favorite_languages = {
'jen': ['python','c'],'lucas': ['python'],'veronica': ['c','ruby'],'jack': ['haskel','go'],}
for name,languages in favorite_languages.items():
if len(languages) == 1:
print(f"\n{name.title()}'s favorite language is : {language.title()}")
else:
print(f"\n{name.title()}'s favorite languages are: ")
for language in languages:
print(f"\t{language.title()}")**
我期望的结果是,如果用户只有一种最喜欢的语言,代码就会打印出来:
"{user}'s favorite language is : {language.title()},
否则:
"{user}'s favorite languages are: {language.title()}"
结果如下:
Jen's favorite languages are:
Python
C
Lucas's favorite language is : C
Veronica's favorite languages are:
C
Ruby
Jack's favorite languages are:
Haskel
Go
就我而言,代码运行良好,只是在 Lucas 最喜欢的语言中结果不同。结果说Lucas最喜欢的语言是C,而不是我在程序里写的Python。
如果有人帮助我,我将不胜感激。
解决方法
您定义的唯一地方 language
- 单数 - 是当您遍历喜欢多种语言的人的每种语言时。如果 Lucas 是列表中的第一个,它就会产生错误。实际上,那时 language
仍然是 Jen 最近最喜欢的 C。要解决这个问题,请在检查单个最喜欢的语言时使用 languages[0]
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。