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

В Python цикл for используется для перебора последовательности (то есть списка, кортежа, словаря, набора или строки) или других итерируемых объектов.

В Python существует множество различных методов нахождения суммы цифр числа с помощью цикла for. Давайте рассмотрим их один за другим, используя несколько наглядных примеров.

Содержание

Метод 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

Метод 1: без функции с использованием str() и int() 

Метод 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

Метод 2: с использованием итерации

Таким образом, мы используем итерацию, чтобы найти сумму цифр числа в 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

Метод 3: с использованием функции sum()

Этот метод предлагает компактный и 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

Метод 4: с оператором +=

Таким образом, мы можем использовать оператор +=, чтобы найти сумму цифр числа в 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

Метод: с использованием рекурсии 

Добавить комментарий