簡體   English   中英

Python 速成班 Eric Mathes

[英]Python Crash Course Eric Matthes

我是編碼的初學者。 在第 16 章工作時,我對其中一個代碼感到困惑。

CODE 1 來自作者:

1.

def get_country_code(country_name):
    for name , code in COUNTRIES.items():
        if name == country_name:
            return code
    return None

print(get_country_code('United States'))

將“我們”打印為美國的代碼。

為什么在沒有匹配country_name的情況下使用 else 時第二個代碼不起作用?

2.

def get_country_code(country_name):
    for name , code in COUNTRIES.items():
        if name == country_name:
            return code
        else:
            return None

print(get_country_code('United States'))

打印“無”。

你能幫我解決這個問題嗎?

在第二個代碼片段中,您的 function 將在第一次通過循環時返回,每次。 不管你有沒有匹配。

首先,您通過整個循環 go 然后返回None

通過將另一個return語句放入循環中,如果您可以匹配國家,它將提前返回。

第一個選項就是您想要的樣子。

您的第二個代碼只運行一次。 在第一次迭代中,當 if 代碼與國家代碼不匹配時,如果代碼移至 else 並返回 None。一旦執行 return,您的 for 循環將在返回 None 后終止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM