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

如何从一个函数中调用两个返回的局部变量,以作为python中另一个函数的条件进行验证?,python,function,Python,Function,问题是: 编写一个Python函数来查找给定数字列表中的所有强数。 编写另一个函数来查找并返回数字的阶乘。用它来解决问题。 注意:0=一, 到目前为止我尝试的代码: def factorial(number): sum1=0 temp=number while(number): i=1 f=1 r=number%10 while(i<=r): f=f*i

问题是:

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

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

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)
def阶乘(数字):
sum1=0
温度=数字
而(数目):
i=1
f=1
r=数字%10
而(i导入数学

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

def查找强编号(编号列表): strongNumbersList=[] 对于num_列表中的项目: 当前编号=项目 数字=[] 当currentNumber>0时: 数字。插入(0,当前编号%10) currentNumber=currentNumber//10 如果总和(映射(阶乘,数字))==项: 如果项==0: 打破 strong编号列表。追加(项目) 返回strong号码列表

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

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

打印(强数量列表)

  • 列表项
  • 输入数学

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

    def查找强编号(编号列表): strongNumbersList=[] 对于num_列表中的项目: 当前编号=项目 数字=[] 当currentNumber>0时: 数字。插入(0,当前编号%10) currentNumber=currentNumber//10 如果总和(映射(阶乘,数字))==项: 如果项==0: 打破 strong编号列表。追加(项目) 返回strong号码列表

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

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

    打印(强数量列表)

  • 列表项

  • 什么是“强”数?听起来你在寻找一个更像是
    [factorial(num)for num in num_list if is_strong_num(num)]
    的数字,如果其数字的阶乘和等于数字本身,则被认为是强数。145是一个强数,如1!+4!+5!=145。什么是“强”数字?听起来你在寻找更像是
    [num\u列表中num的阶乘(num)如果是\u strong\u num(num)]
    如果一个数字的阶乘和等于该数字本身,则该数字被视为强数。145是一个强数,等于1!+4!+5!=145。实际上,每次归零时都有一个问题,所以如果我们是cheching num_list=[145375100,0,10]对于结果,时间零点也包括在内,所以它的工作…….我的解决方案在每个条件下都是正确的实际上,每个时间零点也包括一个问题,所以如果我们检查数值列表=[145375100,0,10],对于结果,时间零点也包括在内,所以它的工作…….我的解决方案在每个条件下都是正确的
    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)