Как найти сумму цифр в строке python
Перейти к содержимому

Как найти сумму цифр в строке python

  • автор:

как посчитать сумму цифр в строке

Вам нужно проверить можно ли из символа сделать число, это делается так:

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.9.3159

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Найти сумму цифр числа в 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()

Вычисление суммы цифр целого числа

Применим знания по Питону и напишем программу, которая вычисляет сумму всех цифр содержащихся в числе. Очень полезно задать такой пример при прохождении темы по циклам в Питоне.

Описание алгоритма действий

В нашей задаче мы не знаем, сколько чисел содержится в числе. Поэтому придётся использовать оператор while .

  1. Вводим число с клавиатуры и преобразуем его в целочисленный тип.
  2. В переменной sum мы будем запоминать сумму чисел числа
  3. Начинаем цикл. Пока число N больше нуля производим операции:
  4. В переменной d сохраняем остаток от деления на 10.
  5. В N сохраняем результат деления без остатка.
  6. Суммируем остатки в переменной sum .
  7. Выводим результат вычислений.

Код программы на Питоне

# Пример. Вычисление суммы цифр целого числа
N = int(input(«Введите число Сумма всех цифр этого числа brush: py»>Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on Linux
Введите число= 554577
Сумма всех цифр этого числа = 33

Коротко и ясно. Посмотрите и остальные задачи по Питону.

© 2013-2020 Информатика. Полезные материалы по информационным технологиям. Использование материалов без активной ссылки на сайт запрещено! Публикация в печати только с письменного разрешения администрации.

Как найти сумму цифр в строке python

Най дите сумму цифр целого числа n.

Вход. Одно целое 32-х разрядное число n (число может быть отрицательным).

Выход. Выве дите сумму цифр числа n .

Пример входа

Пример выхода

РЕШЕНИЕ

элементарная задача

Входное число может быть отрицательным. В таком случае изменим его знак.

Реализуем рекурсивную функцию sum(n), вычисляющую сумму цифр числа n, согласно рекурсивной схеме:

· иначе вычисляем сумму цифр числа n / 10 и прибавляем к нему последнюю цифру n % 10 числа n.

Задачу можно также решить при помощи цикла (без использования рекурсии).

Реализуем функцию sum по приведенной выше рекурсивной схеме.

return n % 10 + sum(n / 10);

Основная часть программы. Читаем входное число n. Если оно отрицательно, то установим его значение на противоположное.

Вычисляем и выводим сумму цифр числа n.

Реализация алгоритма – итерация

В переменной sum находим сумму цифр числа n .

Перебираем цифры числа n . Прибавляем каждую цифру числа n к сумме sum .

sum = sum + n % 10;

import java.util.*;

public class Main

static int sum( int n)

return n % 10 + sum(n / 10);

public static void main(String[] args)

Scanner con = new Scanner(System. in );

int n = con.nextInt();

int res = sum(n);

System. out .println(res);

n = int(input()) 
if n  0: n = -n; 
sum = 0 
while n > 0: 
 sum = sum + n % 10; 
 n = n // 10; 
print(sum) 

Python реализация – функция

return sum(n // 10 ) + n % 10

n = int(input()) 
if n  0 : n = -n 
s = map(int,list(str(n))) 
print(sum(s)) 

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *