首页 > 解决方案 > 当语言只包含一种语言时,我无法得到正确的答案以打印出来:“莎拉最喜欢的语言是:C”

问题描述

favorite_languages = {
    "jen": ["python", "ruby"],
    "sarah": "c",
    "edward": ["ruby", "go"],
    "phil": ["python", "haskell"],
}

for names, languages in favorite_languages.items():

    if len(languages) > 1:
        print(f"\n{names.title()}'s favorite languages are:")
        for language in languages:
            print(f"\t{language.title()}")
    else:
        print(f"\n{names.title()}'s favorite language is: {language.title()} ")

标签: python

解决方案


您的代码需要两个简单的修复:

favorite_languages = {
    "jen": ["python", "ruby"],
    "sarah": ["c"],
    "edward": ["ruby", "go"],
    "phil": ["python", "haskell"],
}

for names, languages in favorite_languages.items():
    if len(languages) > 1:
        print(f"\n{names.title()}'s favorite languages are:")
        for language in languages:
            print(f"\t{language.title()}")
    else:
        print(f"\n{names.title()}'s favorite language is: {languages[0].title()} ")

请注意,Sarah 现在喜欢包含一种语言 ( ["c"]) 的列表,如果她喜欢名称较长的语言,例如["haskell"].

由于只有一个 print 语句,它会打印第一个语言languageswith {languages[0].title()}


推荐阅读