Python 3.x 为什么print()函数在这种情况下不打印

Python 3.x 为什么print()函数在这种情况下不打印,python-3.x,recursion,printing,nonetype,Python 3.x,Recursion,Printing,Nonetype,我一直在研究一个问题,我不明白为什么递归函数步骤返回无 代码如下: import sys def minIndx(list): x=10 indx=0 for i in range(len(list)): if (list[i]<x): x=list[i] indx=i return indx def steps(arr,sum1,sum2,x): i = minIndx(arr)

我一直在研究一个问题,我不明白为什么递归函数步骤返回无

代码如下:

import sys

def minIndx(list):
    x=10
    indx=0
    for i in range(len(list)):
        if (list[i]<x):
            x=list[i]
            indx=i
    return indx

def steps(arr,sum1,sum2,x):
    i = minIndx(arr)
    del arr[i]
    sum1 = sum(arr)
    if (sum1 + 9*x >= sum2):
        return x
    else: steps(arr,sum1,sum2,x+1)

s=input()
digits1=[]
digits2=[]
for i in range(len(s)):
    if (i>2):break
    digits1.append(int(s[i]))
for i in range(len(s)):
    if (i<3):continue
    digits2.append(int(s[i]))
sumLeft = sum(digits1)
sumRight = sum(digits2)
print(steps(digits1,sumLeft,sumRight,1))
导入系统 def minIndx(列表): x=10 indx=0 对于范围内的i(len(列表)): 如果(列表[i]=sum2): 返回x 其他:步骤(arr、sum1、sum2、x+1) s=输入() 数字1=[] 数字2=[] 对于范围内的i(len(s)): 如果(i>2):中断 数字1.附加(int(s[i])) 对于范围内的i(len(s)):
如果(我这可能是因为您没有返回递归调用。这里的预期输出是什么?当我返回步骤的递归调用时,输入123456的值为2。

步骤的else中,您没有返回任何内容。使用递归时,每个执行分支都必须返回某些内容。只需返回递归调用的结果。