如何从一个函数中调用两个返回的局部变量,以作为python中另一个函数的条件进行验证?
问题是: 编写一个Python函数来查找给定数字列表中的所有强数。 编写另一个函数来查找并返回数字的阶乘。用它来解决问题。 注意:0=一, 到目前为止我尝试的代码:如何从一个函数中调用两个返回的局部变量,以作为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
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)