我試圖寫一個遞歸函數,獲取作爲輸入字符串和字符。該函數返回字符串中char的第一個索引外觀。如果char不出現,則返回None。 我只有在返回None時纔有問題。在我的情況下,當字符串不是在字符串函數拋出一個錯誤,任何建議?在字符串遞歸中的第一個索引外觀
def char_first_index(s,c):
if len_rec(s)==0:
return None
if s[0]==c:
return 0
return 1+ char_first_index(s[1:],c)
這誤差是......?另外,什麼是'len_rec'? –
TypeError:不支持的操作數類型爲+:'int'和'NoneType' – user2751595
這是因爲只有在最後一次調用時,空字符串上的那個調用返回'None'。但所有以前的調用返回1 +的東西。這導致了諸如「1 + 1 + 1 + ... + None」之類的事情。你不能把'None'加到整數上。恐怕需要重新設計功能。如果字符在字符串中,那麼如何返回'-float(「Infinity」)「,所以用戶可以檢查該值是否爲<0或者返回1,並要求用戶檢查結果是否更大比字符串的長度。總是返回相同類型的對象通常是一個好主意。 – Cu3PO42