yilean 发表于 2020-5-18 11:07:29

零基础入门Python24讲课后作业递归测试回文结构的问题

题目是:2. 还记得求回文字符串那道题吗?现在让你使用递归的方式来求解,亲还能骄傲的说我可以吗?
我的代码是:
def sym(string):
    string = str(string)
    length = len(string)
    if length == 0 or length == 1:
      return 1
    elif length > 1:
      if string == string:
            sym(string)
            return 1
      else:
            return 0
print(sym(1231))

为什么结果是1呢?求大神解答,谢谢!

_2_ 发表于 2020-5-18 11:09:27

这个函数里只有 return 0 和 return 1,不然呢

Twilight6 发表于 2020-5-18 11:10:14

本帖最后由 Twilight6 于 2020-5-18 11:19 编辑

因为你自己写的代码返回值就是这样丫
我在你的基础上更改了下代码:
def sym(string):
    string = str(string)
    length = len(string)
    if   length == 1:
      return '是回文联'
    elif length > 1:
      if string == string[-1]:# [-1] 就是代表最后一个位置参数
            return sym(string)
      else:
            return '不是回文联'
print(sym(1321))

如果帮助到你了~记得给个最佳哈{:10_287:}

qiuyouzhi 发表于 2020-5-18 11:10:59

这就是你写的代码啊,一个return 0,一个return 1啊

_2_ 发表于 2020-5-18 11:11:43

_2_ 发表于 2020-5-18 11:09
这个函数里只有 return 0 和 return 1,不然呢

你应该返回反转之后的字符串,而不是布尔值

_2_ 发表于 2020-5-18 11:12:15

你应该返回反转之后的字符串,而不是布尔值

_2_ 发表于 2020-5-18 11:13:01

qiuyouzhi 发表于 2020-5-18 11:10
这就是你写的代码啊,一个return 0,一个return 1啊

给我吧{:10_254:},求你了
页: [1]
查看完整版本: 零基础入门Python24讲课后作业递归测试回文结构的问题