Программа нахождения суммы всех цифр данного числа
Данная программа должна вывести сумму всех цифр, из которых состоит введенное число.
Решение задачи
- Возьмем введенное число и запишем его в переменную.
- При помощи цикла while извлечем каждую цифру из данного числа и запишем их сумму в отдельную переменную.
- Выведем полученный результат на экран.
- Конец.
Исходный код
Ниже дан исходный код для вывода суммы всех цифр, из которых состоит данное число. Результаты работы программы также даны ниже.
n = int(input("Введите число:")) tot = 0 while(n > 0): dig = n % 10 tot = tot + dig n = n//10 print("Сумма цифр равна:", tot)
Объяснение работы программы
- Пользователь вводит число, которое записывается в переменную.
- Используем цикл while . Цифры извлекаются из числа при помощи оператора деления по модулю, начиная с конца.
- Далее записываем эту цифру в отдельную переменную и потом, в процессе работы цикла, прибавляем к ней остальные цифры числа.
- После суммирования цифра «уничтожается» при помощи оператора целочисленного деления.
- Когда число становится равным 0 (все цифры были обработаны и «уничтожены»), цикл завершает свою работу.
- После этого полученная сумма выводится на экран.
Результаты работы программы
Пример 1: Введите число:1892 Сумма цифр равна: 20 Пример 2: Введите число:157 Сумма цифр равна: 13
Python: Вычислить сумму цифр числа

Простой и избыточный вариант, для понимания логики вычисления суммы цифр числа.
# Вычисление суммы цифр трехзначного числа # Простой вариант для понимания логики вычисления import random a=random.randint(100, 999) print ('Случайное число =',a) s=a%10 a=a//10 print ('Первый проход, s =',s, 'a =',a) s=s+a%10 a=a//10 print ('Второй проход, s =',s, 'a =',a) s=s+a%10 a=a//10 print ('Третий проход, s =',s, 'a =',a) print ('Сумма цифр числа = ',s)
2. Вариант (цикл For)
# Вычисление суммы цифр трехзначного числа # Простой вариант для понимания логики вычисления import random a=random.randint(100, 999) # Получаем случайное трехзначное число из диапазона 100-999 print ('Случайное число "a" =',a) s=0 for i in range (3): s,a = s + a%10, a//10 print (i+1, ' проход: s = ',s, ', a = ',a, sep='') print ('Сумма цифр числа "a" = ',s)
3. Мини
import random a=random.randint(100, 999) print ('Случайное число "a" =',a) print (a//100 + a//10%10 + a%10)
4. Через map и sum
import random a=random.randint(100, 99999) b = map(int, str(a)) print('Дано число <>, сумма знаков числа = <>'. format(a, sum(b)))
Найти сумму цифр числа в Python
Для изучения базовых конструкций языка Python преподаватели обычно всегда предлагают простые и понятные задачи школьного уровня. Но, не смотря на это, такие задачи полезны и учат не только языку, но и умению реализовывать алгоритмы. Рассмотрим тут одну из таких задач.
Дано целое положительное число. Найти сумму цифр этого числа.
Рассмотрим несколько вариантов решения этой задачи. Простейший и самій очевидный способ решения задачи состоит в том, чтобы получить каждую из цифр, составляющих данное число. Для этого последовательно будем делить исходное число n на 10 нацело (находит разряды числа). Деление будем выполнять в цикле, в котором сразу же и будем накапливать требуемую сумму цифр — suma, а также запоминать результат деления для новой итерации цикла в ту же переменную n. Деление (цикл) продолжается пока число n не достигнет нулевого значения.
n=2021 suma = 0 while n > 0: suma = suma + n % 10 n //= 10 print(‘Suma =’, suma)
Но, можно обойтись и без деления. Для этого заданное число n преобразуем в строку s, а затем переберем в цикле последовательно все символы (цифры) этой строки. Но, чтобы их можно было сложить, они должны быть преобразованы в числовые значения — int(c). И дальше остается только воспользоваться функцией sum(), чтобы сложить эти все цифры и получить сумму цифр числа — suma.
n=2021 s=str(n) suma= sum(int(c) for c in s) print(‘Suma =’, suma)
Но, нам этого мало и мы идем дальше. А можно ли при решении этой задачи избавиться от цикла. Попробуем. Решение будет похоже на предыдущее, но цикл заменим встроенной функцией map() применяемой к каждому элементу некоторого объекта. В нашем случае это символы строки str(n), полученной преобразованием исходного числа в строку и ее составляющих символов в целые числа.
n=2021 suma=sum(map(int, str(n))) print(‘Suma =’, suma)
Если код этого примера не совсем понятен, то проще будет понять следующий код — там используем преобразование числа в список из цифр и дальше проходимся по нему функцией map()
как посчитать сумму цифр в строке
Вам нужно проверить можно ли из символа сделать число, это делается так:
elem.isdigit()
вам надо найти сумму а не количество:
k = k + 1
k += int(elem)
код должен быть таким:
str1=str(input()) print(str1) k=0 for elem in str1: if elem.isdigit(): k += int(elem) print(elem) print("k=" ,k)
Отслеживать
ответ дан 6 ноя 2020 в 10:04
19.6k 6 6 золотых знаков 22 22 серебряных знака 56 56 бронзовых знаков
import re a = input('') digits = re.findall("\d", a) if not digits: print('Цифры не найдены') else: print(eval('+'.join(digits)))
Отслеживать
ответ дан 6 ноя 2020 в 13:39
Edward Grachev Edward Grachev
482 3 3 серебряных знака 5 5 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.