递归Py程序当j == 1时返回j = None?这没有意义,因为指定的基本情况j必须等于1并且不再调用函数。
import sys
y=10
def decrease(j):
if j==1:
print('j =' + str(j) + '(1)')
print('returning j')
return j
else:
print('j =' + str(j) + '(not 1)')
print('decreasing j')
j = j-1
print('calling decrease j')
decrease(j)
y=decrease(y)
print('complete')
print(y)
答案 0 :(得分:1)
你忘了在第二个分支的末尾return decrease(j)
。
通常,当您遇到函数返回的意外None
时,请先检查所有分支是否以return
语句结尾。没有它,函数返回None