Python с его богатой стандартной библиотекой и простым синтаксисом предоставляет множество способов решения задачи. Одной из таких распространенных задач является нахождение суммы цифр числа. В этой статье мы рассмотрим различные методы вычисления суммы цифр числа с помощью цикла for в Python.
В Python цикл for используется для перебора последовательности (то есть списка, кортежа, словаря, набора или строки) или других итерируемых объектов.
В Python существует множество различных методов нахождения суммы цифр числа с помощью цикла for. Давайте рассмотрим их один за другим, используя несколько наглядных примеров.
- Метод 1: без функции с использованием str() и int()
- Метод 2: с использованием итерации
- Метод 3: с использованием функции sum()
- Метод 4: с оператором +=
- Методы поиска
- Метод: с использованием рекурсии
Метод 1: без функции с использованием str() и int()
В Python метод int() используется для преобразования строкового значения в целое число, а метод str() — для преобразования целого числа в строку.
Пример. Давайте возьмем пример и проверим, как найти сумму цифр числа в Python, используя str() и int() в цикле for в Python.
USA_state_ZIPCode = 76450
total=0
for i in str(USA_state_ZIPCode):
total=total+int(i)
print("Sum of digits of a number :",total)
Вывод: сначала в данном коде мы инициализируем переменную Python значением 0, чтобы мы могли хранить в ней сумму цифр числа. Затем мы преобразовали число в строку с помощью метода str(). После этого мы использовали цикл for для перебора каждой цифры числа и преобразования их в целое число с помощью метода int().
Sum of digits of a number : 22

Метод 2: с использованием итерации
Чтобы вычислить сумму в этом методе, используйте цикл для многократного извлечения последней цифры из числа и накопления суммы.
В этом случае мы начинаем с инициализации общей суммы нулями и принятия абсолютного значения числа в Python. Затем, используя цикл, метод повторяется:
- Извлеките последнюю цифру из числа.
- Добавляет эту цифру к общей сумме.
- Удаляет последнюю цифру из номера.
Этот цикл продолжается до тех пор, пока в числе не останется цифр, после чего возвращается накопленная сумма.
Пример. Давайте возьмем пример и проверим, как найти сумму цифр числа в Python с помощью итерации.
def sum_of_digits_iteration(n):
n = abs(n)
total = 0
while n:
total += n % 10
n //= 10
return total
number = 89589
print("Sum of the digits is:", sum_of_digits_iteration(number))
Выходные данные: В этом методе мы разделим число на 10, чтобы получить самую правую цифру числа, то есть 0. Самая правая цифра в конечном итоге составит остаток. Используйте оставшийся оператор «%», чтобы получить остаток. Разделите частное на 10, чтобы получить полное количество цифр числа. Используйте «//», чтобы каждый раз получать целочисленное частное.
Sum of the digits is: 39

Таким образом, мы используем итерацию, чтобы найти сумму цифр числа в Python, используя цикл while.
Метод 3: с использованием функции sum()
Функция sum() в Python используется для вычисления суммы цифр числа в списке. Этот подход сочетает в себе преобразование строк и понимание списка для извлечения цифр, а затем использует функцию sum() для вычисления их суммы с помощью Python.
Пример. Здесь мы возьмем пример и проверим, как найти сумму цифр числа в Python с помощью функции sum().
def sum_of_digits_sum(n):
return sum([int(digit) for digit in str(abs(n))])
number = 79038
print("sum of the digits is:", sum_of_digits_sum(number))
Вывод: Используя понимание списка, число (теперь строка) обрабатывается цифра за цифрой. Каждый символ (цифра) преобразуется в целочисленную форму. В результате получается список целых чисел. Встроенная функция sum() используется для вычисления общей суммы целых чисел в списке.
sum of the digits is: 27

Этот метод предлагает компактный и Pythonic способ суммирования цифр числа в Python с использованием цикла for, используя понимание списка и встроенные функции, такие как sum().
Метод 4: с оператором +=
Оператор += называется оператором «сложения на месте» или оператором «дополненного присваивания». Он обеспечивает краткий способ обновления значения переменной путем добавления к ней другого значения.
Пример. Мы можем вычислить сумму цифр числа в Python, используя цикл for с оператором += следующим образом:
def total_runs_scored(num):
total_runs = 0
num_str = str(num)
for inning in num_str:
total_runs += int(inning)
return total_runs
runs_in_each_inning = 12345
print(f"Total runs scored in the game: {total_runs_scored(runs_in_each_inning)}")
Вывод: оператор += используется для добавления количества прогонов каждой итерации к переменной, таким образом вычисляя сумму всех цифр с помощью Python.
Total runs scored in the game: 15

Таким образом, мы можем использовать оператор +=, чтобы найти сумму цифр числа в Python, используя цикл for.
Методы поиска
Есть один способ найти сумму цифр числа в Python без цикла.
Метод: с использованием рекурсии
Рекурсия — это метод программирования, при котором функция вызывает саму себя для решения более крупной проблемы путем решения меньших экземпляров той же проблемы.
Если мы хотим найти сумму цифр числа в Python, одним из подходов может быть выделение последней цифры, а затем добавление ее к сумме остальных цифр. Этот шаблон может повторяться до тех пор, пока не останется цифр, что является базовым случаем, останавливающим рекурсию.
Пример: Для наших целей предположим, что нам было поручено проанализировать сумму цифр различных чисел для исследования с помощью Python, но мы не могли использовать циклы.
def sum_of_digits(n):
if n == 0:
return 0
else:
return n % 10 + sum_of_digits(n // 10)
ssn = "123-45-6789"
ssn_clean = int(ssn.replace("-", ""))
print("Sum of digits of a number is:", sum_of_digits(ssn_clean))
Вывод: Хотя наша строка содержит и другие символы, кроме чисел, мы используем метод replace(), чтобы заменить их пустой строкой. и после этого преобразуйте их в целое число, а затем примените к нему функцию рекурсии.
Sum of digits of a number is: 45
