ps:這個問題只是被標記爲重複,並且已經有一個答案。問題是,這個問題與另一個問題不一樣。在這個問題中,我已經知道我的代碼出錯了。我問爲什麼這是錯的。Python遞歸函數輸入
這是udacity,我被要求解決一個問題:
定義過程is_palindrome,即需要輸入一個字符串,並返回一個 布爾值,表示如果輸入的字符串是迴文。
提示:
基本情況:
''
=>True
遞歸案例:如果第一個和最後一個字符不匹配=>
False
如果它們匹配,是中間迴文?
def is_palindrome(s):
if s=='':
return True
else:
if s[0]!=s[-1]:
return False
else:
s=s[1:-1]
is_palindrome(s)
而3輸入的情況下嘗試:
print is_palindrome('')
#>>> True
print is_palindrome('abab')
#>>> False
print is_palindrome('abba')
#>>> True
如果我離開我的代碼那樣,它會返回None的情況下,「阿爸」。它可以通過改變函數的最後一行到
return is_palindrome(s[1:-1])
固定請問爲什麼return
事?即使沒有回報,不應該只是一次又一次地運行功能is_palindrome()
?
當'is_palindrome'再次運行並再次檢查時,已經有一些'return',但是這些run-again-inner'return'不會被返回? –