0

我是 Python 新手,一月底才开始学习 Python。我目前在 Python Crash Course(第 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。

如果有人帮助我解决这个问题,我将不胜感激。

4

1 回答 1

3

您定义的唯一位置language(单数)是当您遍历喜欢多种语言的人的每种语言时。如果 Lucas 是列表中的第一个,就会产生错误。事实上,language当时仍然是 Jen 最新最喜欢的 C。要解决这个问题,languages[0]请在检查单一喜欢的语言时使用。

于 2021-02-15T04:14:15.160 回答