[英]Problem in Alien Invasion project, from Python Crash Course by Eric Matthes
[英]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.