2014-03-25 41 views
0
def reverse(str_): 
     tot = "" 
    if len(str_)==0: 
     return tot 
    else: 
     tot += str_[-1] 
     return reverse(str_[:-1]) 


print(reverse("chicken")) 

函數應返回舊字符串的反轉。我不知道爲什麼它不工作。如何使用遞歸

謝謝

+2

因爲您沒有使用'tot'在else部分中返回語句。 – Bunyk

回答

0

,因爲你將它設置爲「」每一個遞歸你不能改變TOT在功能不會有所需數據的每一個遞歸。像這樣嘗試。

def reverse(s): 
    if s == "": 
     return s 
    else: 
     return reverse(s[1:]) + s[0] 


print(reverse("chicken")) 
0

這裏沒有必要比較「」爲S.只是如果不是S將如果s返回true「」。下面的代碼將正常工作。

def reverse(s): 
    return s if not s else reverse(s[1:])+s[0] 

如果你只是想扭轉刺痛,不希望使用內置的方法,那麼你可以使用S [-1 :: - 1]