1
我想從字符串列表中提取每個字符串的第一個字母。我知道我可以使用抽象列表函數來做到這一點,但我想用結構遞歸來做到這一點。獲取NoneType應該返回一個字符串的函數的錯誤?
考慮下面的代碼:
def acronym(los)
if los != []:
return los[0][0] + acronym(los[1:])
我得到以下錯誤:
builtins.TypeError: Can't convert 'NoneType' object to str implicitly
雖然我做了這個錯誤的SOF一些研究,我還是不明白,爲什麼這個功能應該返回None
,當los[0][0]
是一個字符串並且acronym(los[1:])
也返回一個字符串。
有什麼建議嗎?
首先,解決您的壓痕。其次,如果'los == []',你會返回什麼? – user2357112
哦,我看到如果我添加其他:return「」,問題就解決了。你是否介意爲什麼簡單地將「else」部分退出會產生錯誤?是因爲函數的輸出必須是NoneType或者是一個字符串(並且Python自動假定函數應該返回None)? – AlwaysLearning
如果一個函數沒有顯式地返回某個東西,它會自動返回'None'。 – user2357112