Python返回none而不是string outpu

2024-04-25 20:01:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一些关于在递归函数中收缩字符串的代码

当输入字符串结束时,它返回输出

它在函数中显示正确的东西,但它返回None,而不是answer

def rec_encyption(input, i, cnt, output):
    if i + 1 == len(input):
        print(output)
        return output
    elif input[i] == input[i + 1]:
        rec_encyption(input, i + 1, cnt + 1, output)
    else:
        output = output + input[i] + str(cnt)
        rec_encyption(input, i + 1, 1, output)

def do_rec_encyption(input):
    n = rec_encyption(input + " ", 0, 1, "")
    print(n)
    return n

print(do_rec_encyption("aaabbcccccca"))

我在VSCode中运行此代码,结果如下:

a3b2c6a1型

没有

没有

这意味着rec_encyption返回None,而不是'output'

我找不到解决这个问题的原因和方法


Tags: 函数字符串代码answernoneinputoutputreturn
1条回答
网友
1楼 · 发布于 2024-04-25 20:01:04

在else中使用return

def rec_encyption(input, i, cnt, output):
    if i + 1 == len(input):
        print(output)
        return output
    elif input[i] == input[i + 1]:
        return rec_encyption(input, i + 1, cnt + 1, output)
    else:
        output = output + input[i] + str(cnt)
        return rec_encyption(input, i + 1, 1, output)

相关问题 更多 >