微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python速成课程:在字典的for循环中包含if语句

如何解决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 举报,一经查实,本站将立刻删除。