首页 > 解决方案 > Python完美数

问题描述

在这个 Python 问题中,如果数字不完美,我应该得到 False。相反,我得到“无”。我应该改变什么?

def perfect(number):
    sum = 0
    is_perfect = False
    if number < 0:
        return is_perfect
    for i in range(1, number):
        if(number % i == 0):
            sum = sum + i
        if (sum == number):
            is_perfect = True
            return is_perfect
print(perfect(8))

标签: pythonreturn-value

解决方案


您应该False在结束时返回,否则 None 会隐式返回:

def perfect(number):
    ...
    for i in range(1, number):
        ...
    return False

推荐阅读