Как вывести значение функции
Задача состоит в том, чтобы посчитать сумму цифр числа, например: 54 => 5 + 4 = 9; 1457 => 1 + 4 + 5 + 7 = 17 => 1 + 7 = 8 Когда делал не через return, а через print, то все работало. Подскажите, как передать значение функции для вывода числа.
def func(num):
if len(str(num)) == 1:
return num
elif len(str(num)) == 2:
k = 0
for i in str(num):
k += int(i)
func(num=k)
else:
k = 0
for i in str(num):
k += int(i)
if len(str(k)) >= 2:
func(num=k)
print(func(952))
Ответы (3 шт):
Автор решения: chinger12
→ Ссылка
Вместо func(num=k) на 10 и 17 строках напишите return k
или замените свою функцию на эту
def func(num):
return sum(int(x) for x in str(num))
Автор решения: pb318
→ Ссылка
def sumnum(n: int) -> int:
result = 0
while n > 0:
result += n % 10
n = n // 10
return result
Автор решения: Эникейщик
→ Ссылка
Выкидываем все if-elif-else, которые тут совершенно не нужны и добавляем return, который почему-то есть в первой ветке, но нет во всех других
def func(num):
k = 0
for i in str(num):
k += int(i)
return k
Если же нужно считать до тех пор, пока результат не станет однозначным, то можно использовать рекурсию:
def func(num):
k = 0
if num < 10: # однозначное число
return num # считать нечего, результат уже готов
else: # двух- и болеезначное число
for i in str(num): # считаем сумму цифр
k += int(i)
return func(k) # передаем результат в эту же функцию, чтобы найти сумму цифр нового числа