2017-08-12 14 views
0

有在認爲Python如下的is_reverse程序:is_reverse在認爲Python「第二」錯誤

def is_reverse(word1, word2): 
    if len(word1) != len(word2): 
     return False 

    i = 0 
    j = len(word2) - 1 

    while j > 0: 
     print(i, j) 
     if word1[i] != word2[j]: 
      return False 
     i = i + 1 
     j = j - 1 
    return True 

作者要求找出它的錯誤,我無法經過多次頭腦風暴。

程序工作得很好,並返回此:

0 3 
1 2 
2 1 
True 

錯誤涉及到這個輸出。請幫我弄明白。

+1

可能是打印函數,因爲is_reverse函數應該只返回一個布爾值,而不是在屏幕上打印。 –

+0

究竟是什麼問題?正如你所說的程序工作得很好! – Arman

+0

打印功能首先用於錯誤檢查。這不是錯誤。是的,該程序工作正常,但有一個錯誤有關迭代,我無法弄清楚。 –

回答

0

想檢查字詞1是字詞2的儲備(我認爲,請發表您所期望的功能,下次做什麼)

功能

該功能不檢查最終詞和開始詞。它不檢查字1 [-1](最後一個字符)和WORD2 [0](第一個字符)

w1 = 'Dogx' 
w2 = 'ggoD' 
print (is_reverse(w1, w2)) 

的問題是在這裏:檢查單詞2之前

while j > 0: 

循環終止[0] 。我建議添加=。因此,將條件更改爲:

while j >= 0: 
1

變化is_reverse方法,而條件 -

while j >= 0: 
+0

阿莫爾,你搖滾,兄弟! –

0

也許縮進不正確?難道不是錯誤,如果它是這樣的:

def is_reverse(word1, word2): 
    if len(word1) != len(word2): 
     return False 

    i = 0 
    j = len(word2) - 1 

    while j > 0: 
     print(i, j) 
     if word1[i] != word2[j]: 
      return False 
     i = i + 1 
     j = j - 1 
    return True 

我會寫這個函數是這樣的:

def is_reverse(word1, word2): 
    return word1[::-1] == word2 

但無論這些功能的處理大寫字母爲小寫比較。我不知道你想如何處理。