递归Py程序当j == 1时返回j = none?

时间:2017-09-14 01:52:03

标签: python recursion

递归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)

1 个答案:

答案 0 :(得分:1)

你忘了在第二个分支的末尾return decrease(j)

通常,当您遇到函数返回的意外None时,请先检查所有分支是否以return语句结尾。没有它,函数返回None