如何从一个函数中调用两个返回的局部变量作为python中另一个函数的条件进行验证?

2024-05-17 05:28:34 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是:

编写一个Python函数来查找给定数字列表中的所有强数。 编写另一个函数来查找并返回数字的阶乘。用它来解决问题。 注意:0!=1个

到目前为止我尝试的代码:

def factorial(number):
    sum1=0
    temp=number
    while(number):
        i=1
        f=1
        r=number%10
        while(i<=r):
            f=f*i
            i=i+1
            sum1=sum1+f
            number=number//10
    return sum1
    return temp

def find_strong_numbers(num_list):
     for item in num_list:
         for number in range(1,item+1):
            if(sum1==temp):
                print(number)

num_list=[145,375,100,2,10]
strong_num_list=find_strong_numbers(num_list)
print(strong_num_list)

预期输出:[145,2]

我面临的错误是:

名称错误:未定义名称“sum1”


Tags: 函数numberforreturndef数字finditem
2条回答
import math

def factorial(number):
    if number == 0:
        return 1
    else:
        return number * factorial(number-1)

def find_strong_numbers(num_list):
     strongNumbersList = []
     for item in num_list:
         currentNumber = item
         digits = []
         while currentNumber > 0:
            digits.insert(0, currentNumber % 10)
            currentNumber = currentNumber // 10
         if sum(map(factorial, digits)) == item:
             strongNumbersList.append(item)
     return strongNumbersList

num_list=[145,375,100,2,10]

strong_num_list=find_strong_numbers(num_list)

print(strong_num_list)

导入数学

def阶乘(数字): 如果数字==0: 返回1 其他: 返回数*阶乘(数字-1)

def find\ U strong\ U numbers(数字列表): strongNumbersList=[] 对于数字列表中的项目: currentNumber=项目 数字=[] 当currentNumber>;0时: 数字.插入(0,当前编号%10) currentNumber=currentNumber//10 如果sum(map(factorial,digits))==项: 如果项==0: 打破 strong数字列表.append(项目) 返回strong数字列表

数字列表=[145375100,2,1040585,0]

strong\U num\U list=查找\U strong\U号码(num\U list)

打印(强数量列表)

  1. 列表项

相关问题 更多 >