yangxuebabe 发表于 2020-4-10 21:25:11

python 23、24 作业 递归 回文联 求解答

为什么我运行结果不对啊
def palindrome(n):
    n1 = list(n)
    n2 = list(reversed(n))
    length = len(n)
    if length == 0 or 1:
      return '是回文联!'
    elif n1 == n2:
      n1.pop(0)
      n1.pop()
      n = n1
      return palindrome(n)
    else:
      return '不是回文联!'
            
palindrome('123')

永恒的蓝色梦想 发表于 2020-4-10 21:29:49

你的方法本身就不对def palindrome(n):
    return n==n[::-1]
palindrome('123')

yangxuebabe 发表于 2020-4-10 21:33:32

永恒的蓝色梦想 发表于 2020-4-10 21:29
你的方法本身就不对

请问哪里不对呢 我的想法是先变成列表,然后reverse一个倒序列表,然后看两个列表第一个元素是否相等,相等就去掉第一个和最后一个元素再比较

永恒的蓝色梦想 发表于 2020-4-10 21:36:51

yangxuebabe 发表于 2020-4-10 21:33
请问哪里不对呢 我的想法是先变成列表,然后reverse一个倒序列表,然后看两个列表第一个元素是否相等,相 ...

第五行改成    if length == 0 or length==1:

yangxuebabe 发表于 2020-4-10 21:39:23

永恒的蓝色梦想 发表于 2020-4-10 21:36
第五行改成

对了!!太感谢了!
不过请问这样分开写和合起来为什么不一样呢

永恒的蓝色梦想 发表于 2020-4-10 21:46:07

yangxuebabe 发表于 2020-4-10 21:39
对了!!太感谢了!
不过请问这样分开写和合起来为什么不一样呢

合起来的话就相当于 (length==0)or 1,永远都是True

yangxuebabe 发表于 2020-4-10 21:48:06

永恒的蓝色梦想 发表于 2020-4-10 21:46
合起来的话就相当于 (length==0)or 1,永远都是True

懂了!忘记这个循序惹 谢谢

永恒的蓝色梦想 发表于 2020-4-10 21:51:15

yangxuebabe 发表于 2020-4-10 21:48
懂了!忘记这个循序惹 谢谢

下次提问记得发提问帖
页: [1]
查看完整版本: python 23、24 作业 递归 回文联 求解答