首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python递归函数不返回值,而是返回值。

Python递归函数不返回值,而是返回值。
EN

Stack Overflow用户
提问于 2021-01-21 15:12:49
回答 1查看 113关注 0票数 0

我只是在尝试一下Python和递归函数。

现在,我想编写一个函数,它将一个数字分成4个部分,直到它小于4。

因此,例如,我提供函数20,然后它应该返回。

代码语言:javascript
复制
[1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25]

如果在return语句之前打印结果,则得到该结果,但如果返回包含这些值的变量,则无法获得该结果。

代码语言:javascript
复制
def break_up_number_into_fours(input):
    flag = 0
    input_list = []
    full_result = []
    if isinstance(input, list):
        input_list.extend(input)
    else:
        input_list.append(input)

    for item in input_list:
        if item > 4:
            result = [item/4]*4
            full_result.extend(result)
            flag = 1
        else:
            full_result.append(item)

    if flag == 1:

        break_up_number_into_fours(full_result)
    else:
        print(full_result)
        return full_result

test = break_up_number_into_fours(20)

print(test)

密码有什么问题吗?

太感激了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-21 15:17:30

您没有从递归调用break_up_number_into_fours(full_result)返回任何值,您需要这样做:

代码语言:javascript
复制
def break_up_number_into_fours(input):
    flag = 0
    input_list = []
    full_result = []
    if isinstance(input, list):
        input_list.extend(input)
    else:
        input_list.append(input)

    for item in input_list:
        if item > 4:
            result = [item/4]*4
            full_result.extend(result)
            flag = 1
        else:
            full_result.append(item)

    if flag == 1:

        return break_up_number_into_fours(full_result) // here you need to return the value in respective recursive call
    else:
        print(full_result)
        return full_result

test = break_up_number_into_fours(20)

print(test)

输出:

代码语言:javascript
复制
[1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25]

[1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65830304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档