为什么 print() 函数在这种情况下打印 none
why is the print() function prints none in this case
我一直在处理一个问题我不明白为什么递归函数步骤 returns None?
这是代码:
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))
对于测试用例:123456,
步骤函数打印 None 以及打印函数
可能是因为您没有return进行递归调用。您在这里的预期输出是什么?当我 return 递归调用步骤时,输入 123456 的值为 2。
我一直在处理一个问题我不明白为什么递归函数步骤 returns None?
这是代码:
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))
对于测试用例:123456, 步骤函数打印 None 以及打印函数
可能是因为您没有return进行递归调用。您在这里的预期输出是什么?当我 return 递归调用步骤时,输入 123456 的值为 2。