我只是在用Python和递归函数做一点实验
现在,我想写一个函数,它将一个数字分成4个部分,直到它小于4
例如,我输入函数20,它应该返回
[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语句之前打印结果,我就会得到这个结果,但是如果我返回包含这些值的变量,我就无法得到这个结果
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)
代码中可能有什么错误
非常感谢
您没有从递归调用
break_up_number_into_fours(full_result)
返回任何值,您需要像这样做:输出:
相关问题 更多 >
编程相关推荐