如何使用递归来使用Python查找回文?

1 python recursion palindrome

我刚刚开始探索编程的奇迹.我正在尝试编写一个代码来识别数字回文.只是看数字而不是文本.我正试图在这里学习使用递归.但我只是没有到达任何地方,我无法弄清楚它有什么问题.

我的想法是检查第一个字符串与最后一个字符串,然后删除这两个匹配,并重复.最终没有任何东西(暗示它是回文)或者会有一对不匹配(暗示相反).

我知道有更好的代码可以找到回文,但我只是想尝试一下递归.

那有什么不对?

def f(n):
    global li   
    li=list(str(n))
    if (len(li)==(1 or 0)):
        return True
    elif li[len(li)-1]==li[0]:
        del li[0]
        del li[len(li)-1]
        if len(li)==0:
            return True
        if len(li)>0:
            global x
            x=''.join(li)
            str(x)
            f(x)
    else:
      return False
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Kev*_*ent 5

一些评论

  • 为什么xli全局?在递归中,所有变量都应该是本地的.
  • 你为什么要来回转换之间strlist?你可以下标两个
  • 您需要返回递归调用的结果: return f(x)

试试这些建议,看看它是如何运作的.