簡體   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