当函数意味着返回true时,不返回任何内容

时间:2016-03-14 15:15:01

标签: python

所以我写了两个函数,isdiv返回x是否可以被y整除而没有任何余数,check_is_divisible返回两个数字,如果第一个数字可以被小于或等于的所有正整数整除,则返回true第二个数字。除了由于某种原因,check_is_divisible在返回true时不会返回任何内容。它应该返回false,并且似乎没有卡在任何无限循环中,所以我不确定我哪里出错了。

def isdiv(x,y):
    if x%y == 0:
        return True
    else:
        return False


def check_if_divisible(value,largest_divisor):


    if isdiv(value,largest_divisor):

        if (largest_divisor == 1):
            return True

        check_if_divisible(value,(largest_divisor-1))

    else:
        return False

1 个答案:

答案 0 :(得分:4)

进行递归调用时,需要转发结果。否则,将丢弃递归返回值,并且默认返回None

def check_if_divisible(value,largest_divisor):
    if isdiv(value,largest_divisor):
        if (largest_divisor == 1):
            return True
        return check_if_divisible(value,(largest_divisor-1))
    else:
        return False