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