@Merkul88

После старта программы выдает None. Суть этого кода: есть число, допустим 89, нужно его разложить на цифры, 89 = 8^1 +9^2. В чем может быть ошибка?

def for_filter(num):
res = 0
for i, n in enumerate(str(num)):
res += (int(n))**(i + 1)
if num == res:
return res

def sum_dig_pow(a, b):
output = []
for i in range(a, b + 1):
f = for_filter(i)
output.append(f)
return output
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 2
@DenisShahbazyan
Может лучше так попробовать?
Как-то для простой задачи написано слишком много. Можно еще укоротить, но уже будет не очень хорошо читаться.

number = input()

result = 1
for index, value in enumerate(list(number), start=1):
    result *= int(value) ** index

print(result)
Ответ написан
fenrir1121
@fenrir1121
Начни с документации
Это две функции, чтобы получить результат нужно функцию вызывать.
print(sum_dig_pow(8, 9))

Ну и сейчас твои функции работают не так, как описано в шапке, а способ решения далек от оптимального. Начни с любого базового курса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы