Введение
В данной статье разберём 3 способа найти сумму цифр числа в языке программирования Python.
Использование цикла for
Для начала создадим переменную number, в которой будет храниться число, сумму цифр которого нужно посчитать. Также создадим переменную равную нулю:
number = 11223344
sum_digits = 0
Создадим цикл, в котором благодаря функции str() преобразуем наше число в строку, и поэлементно пройдёмся по ней. Внутри цикла во время каждой итерации будем прибавлять итерабельное значение к переменной sum_digits:
number = 11223344
sum_digits = 0
for i in str(number):
sum_digits += int(i)
print(f"Сумма цифр числа: {sum_digits}")
# Вывод: 20
Использование цикла while
В данном способе у нас также будет присутствовать переменная sum_digits равная нулю:
number = 11223344
sum_digits = 0
Создадим цикл while, который не закончит свою работу, пока number > 0. Внутри цикла к переменной sum_digits будем прибавлять последнюю цифру нашего числа, после чего путём целочисленного деления убирать его:
number = 11223344
sum_digits = 0
while number > 0:
sum_digits += number % 10
number //= 10
Осталось вывести результат:
number = 11223344
sum_digits = 0
while number > 0:
sum_digits += number % 10
number //= 10
print(f"Сумма цифр числа: {sum_digits}")
# Вывод: Сумма цифр числа: 20
Использование рекурсии
Для начала создадим функцию, которую назовём sum_digits(). В качестве параметра укажем n. Внутри неё зададим условие, что если n равна нулю, то возвращаем её. Если же условие не сработало, то возвращаем сумму последней цифры числа, и рекурсивный вызов функции с её отбрасыванием путём целочисленного деления:
def sum_digits(n):
if n == 0:
return n
else:
return int(n % 10) + sum_digits(int(n / 10))
Вызовем функцию и передадим в неё число:
def sum_digits(n):
if n == 0:
return n
else:
return int(n % 10) + sum_digits(int(n / 10))
number = 11223344
print(f"Сумма цифр числа: {sum_digits(number)}")
# Вывод: Сумма цифр числа: 20
Также можно сократить условие внутри функции используя тернарный оператор:
def sum_digits(n):
return 0 if n == 0 else int(n % 10) + sum_digits(int(n / 10))
number = 11223344
print(f"Сумма цифр числа: {sum_digits(number)}")
# Вывод: Сумма цифр числа: 20
Тернарный оператор в Python/Python условие в одну строку
Заключение
В ходе статьи мы с Вами разобрали 3 способа найти сумму цифр числа в языке программирования Python.Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂
Мой Telegram канал
Мой YouTube канал