函数不返回任何值

Function is not returning any values

我正在编码以查找某个号码是否为 disarium 号码。一个 disarium 数字是一个数字,其中它的数字可以提高到它们各自位置的幂并相加得到数字。

示例 1:75 不是 disarium 数,因为 7^1 + 5^2 = 32 而不是 75

示例 2:135 是一个 disarium 数,因为:1^1 + 3^2 + 5^3 = 1 + 9 + 125 = 135

在我的代码中,即使 75 不是 disarium 数字,也不会返回任何内容。就像我的函数甚至没有通过我的 if 和 else 语句

def is_disarium(number):
    number = str(number)
    selection_array = [int(num) for num in number]
    disarium_check = 0

    for i in range(len(selection_array)):
        disarium_check += int(selection_array[i])**(i+1)

    if disarium_check == number:
        return True
    else:
        return False

is_disarium(75)

My code (image)

此代码目前对每个数字 returning 为 False,因为在 if 语句中您将整数与字符串进行比较。并且您可以使用 print 命令查找 return 值。 使用此修改后的代码检查它是否按预期工作。

def is_disarium(number):
    number = str(number)
    selection_array = [int(num) for num in number]
    disarium_check = 0

    for i in range(len(selection_array)):
        disarium_check += int(selection_array[i])**(i+1)

    if disarium_check == int(number):
        return True
    else:
        return False

output = is_disarium(135)
print(output)