2017-08-12 48 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 

但无论这些功能的处理大写字母为小写比较。我不知道你想如何处理。

相关问题