Как вызвать две возвращенные локальные переменные из функции для проверки в качестве условия в другой функции в python? - PullRequest
0 голосов
/ 27 декабря 2018

Вопрос в следующем:

Напишите функцию 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]

Я столкнулся с ошибкой:

NameError: имя 'sum1' не определено

1 Ответ

0 голосов
/ 28 декабря 2018
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...