繁体   English   中英

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

[英]Python Crash Course: Including if statement inside a for loop in dictionary

我是 Python 的新手,1 月底刚开始学习 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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM