Посчитать сумму и произведение цифр числа (Python)

Тема: 
Циклы
Тема: 
Строки

Вводится натуральное число (> 0). Необходимо найти сумму и произведение цифр, из которых состоит это число. При этом если в числе встречается цифра 0, то ее не надо учитывать при нахождении произведения.

Алгоритм решения задачи сводится к извлечению последней цифры числа путем нахождения остатка от деления на 10 и добавлению ее к произведению и сумме. Далее следует само число разделить нацело на 10, чтобы избавится от последней цифры. Эти действия следует выполнять до тех пор, пока число больше 0. На последней итерации цикла однозначное число делится нацело на 10, в результате чего получается 0 и цикл завершается.

В коде ниже выражение добавления цифры к сумме также можно поместить в ветку if.

n = int(input())
mult = 1
summa = 0
while n > 0:
	if n%10 != 0:
		mult = mult * (n%10)
	summa = summa + n%10
	n = n // 10
 
print("Сумма цифр:", summa)
print("Произведение значащих цифр:", mult)

В языке программирования Python решить подобную задачу может быть легче другим способом - оставить число в строковом представлении и далее в цикле for перебрать элементы последовательности.

n = input()
mult = 1
summa = 0
for i in n:
	summa += int(i)
	if int(i) != 0:
		mult *= int(i)
 
print("Сумма цифр:", summa)
print("Произведение значащих цифр:", mult)

Примечание. Выражение summa += int(i) - это то же самое, что summa = summa + int(i). Та же сокращенная форма используется и для умножения.

Через строковое представлениие легко решить и более сложную задачу. Например, надо посчитать сумму и произведение цифр дробного числа или всех цифр, встречающихся в строке. В таком случае решение может быть таким:

n = input()
mult = 1
summa = 0
for i in n:
	if i in ['1','2','3','4','5','6','7','8','9']: # или '1' <= i <= '9'
		summa += int(i)
		if int(i) != 0:
			mult *= int(i)
 
print("Сумма цифр:", summa)
print("Произведение значащих цифр:", mult)