Mrtu 发表于 2021-8-5 17:51:30

自己写的程序出现了问题

为什么它返回的不是‘321’
def hui(x):
    y=0
    y=str(x)
    length=len(y)
    if length==0:
      return None

    else:
      return y+hui(x-1)

print(hui(321))

大马强 发表于 2021-8-5 17:59:27

我这直接报错了,你的代码是打算干嘛的

柿子饼同学 发表于 2021-8-5 18:01:44

同楼上 , 报错了
你的目的是?

大马强 发表于 2021-8-5 18:02:29

你这死循环啊,Length==0,是不会为0的
你不会以为x=0,它就退出了吧,‘0’ 的长度是1

青出于蓝 发表于 2021-8-5 18:02:58

网上搜索了一下,是递归深度的问题可以加上    import sys   
    sys.setrecursionlimit(100000)

nahongyan1997 发表于 2021-8-5 18:07:26

虽然不知道你要干嘛,但是这样就不会报错了:
def hui(x):
    y=str(x)
    length=len(y)
# 任何数字转换成字符串length都不会为0的
    if length==1:
      return "0"
    else:
      return y+hui(x-1)

print(hui(321))

青出于蓝 发表于 2021-8-5 18:07:44

这里递归是有问题的,它会一直循环,直到x为0,返回一个None。
页: [1]
查看完整版本: 自己写的程序出现了问题