Перейти к содержимому

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

  • автор:

Какой функцией на языке программирования Python найти сумму цифр строки?

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

Каждый символ строки преобразуется в число (функцией map с параметром функции преобразования в виде анонимной функции преобразующей цифры в числа, а остальные символы в число 0)

для определения является ли символ цифрой удобно использовать метод строки isdigit

В этом случае анонимная функция имеет вид:

lambda x:int(x) if x.isdigit() else 0

вычислить сумму цифр строки s можно используя выражение:

Сумма чисел в строке

Добрый вечер,
В строке могут встречаться цифры и иные символы. Числом будем считать последовательность цифр, которая не может быть расширена до большего числа. Например, в строке "10+14=24" встречаются числа 10, 14, 24. Напишите программу, которая подсчитывает сумму всех чисел в данной строке.

ВХОДНЫЕ ДАННЫЕ
Программа получает на вход строку текста, длиной до 100000 символов. Строка может содержать произвольные ASCII-символы, в том числе пробелы.

ВЫХОДНЫЕ ДАННЫЕ
Программа должна вывести единственное число — сумму всех чисел в данной строке.

ВЫВОД
48
Данный код суммирует только числа разделенные пробелами.

Python: вычислить сумму цифр данной строки

Напишите программу на Python для вычисления суммы цифр данной строки.

Пример решения : —

Код Python:

Блок — схема:

«Блок-схема:

Визуализируйте выполнение кода Python:

Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:

Редактор кода Python:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

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

Danis's user avatar

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

вам надо найти сумму а не количество:

код должен быть таким:

Danis's user avatar

Edward Grachev's user avatar

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.5.25.43461

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

Найти сумму цифр числа в Python

Для изу­че­ния ба­зо­вых кон­струк­ций язы­ка Python пре­по­да­ва­те­ли обыч­но все­гда пред­ла­га­ют про­стые и по­нят­ные за­да­чи школь­но­го уров­ня. Но, не смот­ря на это, та­кие за­да­чи по­лез­ны и учат не толь­ко язы­ку, но и уме­нию ре­а­ли­зо­вы­вать ал­го­рит­мы. Рас­смот­рим тут од­ну из та­ких за­дач.

Рас­смот­рим несколь­ко ва­ри­ан­тов ре­ше­ния этой за­да­чи. Про­стей­ший и самій оче­вид­ный спо­соб ре­ше­ния за­да­чи со­сто­ит в том, чтобы по­лу­чить каж­дую из цифр, со­став­ля­ю­щих дан­ное чис­ло. Для это­го по­сле­до­ва­тель­но бу­дем де­лить ис­ход­ное чис­ло n на 10 на­це­ло (на­хо­дит раз­ря­ды чис­ла). Де­ле­ние бу­дем вы­пол­нять в цик­ле, в ко­то­ром сра­зу же и бу­дем на­кап­ли­вать тре­бу­е­мую сум­му цифр — suma, а так­же за­по­ми­нать ре­зуль­тат де­ле­ния для но­вой ите­ра­ции цик­ла в ту же пе­ре­мен­ную n. Де­ле­ние (цикл) про­дол­жа­ет­ся по­ка чис­ло n не до­стигнет нуле­во­го зна­че­ния.

Но, мож­но обой­тись и без де­ле­ния. Для это­го за­дан­ное чис­ло n пре­об­ра­зу­ем в стро­ку s, а за­тем пе­ре­бе­рем в цик­ле по­сле­до­ва­тель­но все сим­во­лы (циф­ры) этой стро­ки. Но, чтобы их мож­но бы­ло сло­жить, они долж­ны быть пре­об­ра­зо­ва­ны в чис­ло­вые зна­че­ния — int(c). И даль­ше оста­ет­ся толь­ко вос­поль­зо­вать­ся функ­ци­ей sum(), чтобы сло­жить эти все циф­ры и по­лу­чить сум­му цифр чис­ла — suma.

Но, нам это­го ма­ло и мы идем даль­ше. А мож­но ли при ре­ше­нии этой за­да­чи из­ба­вить­ся от цик­ла. По­про­бу­ем. Ре­ше­ние бу­дет по­хо­же на преды­ду­щее, но цикл за­ме­ним встро­ен­ной функ­ци­ей map() при­ме­ня­е­мой к каж­до­му эле­мен­ту неко­то­ро­го объ­ек­та. В на­шем слу­чае это сим­во­лы стро­ки str(n), по­лу­чен­ной пре­об­ра­зо­ва­ни­ем ис­ход­но­го чис­ла в стро­ку и ее со­став­ля­ю­щих сим­во­лов в це­лые чис­ла.

Ес­ли код это­го при­ме­ра не со­всем по­ня­тен, то про­ще бу­дет по­нять сле­ду­ю­щий код — там ис­поль­зу­ем пре­об­ра­зо­ва­ние чис­ла в спи­сок из цифр и даль­ше про­хо­дим­ся по нему функ­ци­ей map()

Найдите сумму чисел, присутствующих в строке, разделенной пробелами между использованием python

Я преобразовал строку в int, но она показывает ошибку из-за «» между ними.

Как рассчитать сумму цифр, исключив «» между ними.

Ответ должен быть равен 19744.

Используйте sum + map и str.split()

Если вам нужна сумма всех элементов, можно снова использовать sum

Или проще (как указано в @wwii):

Или еще проще (также как указано в @wwii):

Используйте метод str.split() для разделения по пространству:

Это берет каждую строку в числах в списке и разбивает ее по пробелу, возвращая ее сумму. Тогда каждый из этих «сумм» поступает во внешнюю sum вызов, чтобы их общее количество. При расширении это выглядит следующим образом:

Помните, что split() возвращает список строк, поэтому вам все равно нужно вывести каждый элемент в int перед его суммированием.

Вам нужно разделить пространство и суммировать эти числа, один из подходов следующий:

Выход

Более надежный подход заключается в том, чтобы предоставить значение по умолчанию в случае сбоя трансляции:

Lesson 1
Вход, печать и номера

1. Как читать и писать на Python

Каждая программа в конечном итоге является процессором данных, поэтому мы должны знать, как вводить и выводить в нее данные. Для вывода данных из любой программы Python существует функция print() . Чтобы использовать его, передайте список аргументов, которые вы хотите распечатать, в функцию print() . Давайте посмотрим пример. Нажмите «run», а затем «next», чтобы увидеть, как программа выполняется по строкам:

Чтобы вводить данные в программу, мы используем input() . Эта функция читает одну строку текста в виде строки.

Вот программа, которая читает имя пользователя и приветствует их:

2. Сумма чисел и строк

Попробуем написать программу, которая вводит два числа и печатает их сумму. Мы читаем два числа и сохраняем их в переменных a и b используя оператор присваивания = . В левой части оператора присваивания укажем имя переменной. Имя может быть строкой латинских символов ( AZ , az , 0-9 , _ ), но должно начинаться с буквы в диапазоне AZ или az . В правой части оператора присваивания мы помещаем любое выражение, которое может оценить Python. Имя начинает указывать на результат оценки. Прочтите этот пример, запустите его и посмотрите на вывод:

После запуска примера мы видим, что он печатает 57 . Как мы учили в школе, 5 + 7 дает 12 . Итак, программа неверна, и важно понять, почему. Дело в том, что в третьей строке s = a + b Python «суммировал» две строки, а не два числа. Сумма двух строк в Python работает следующим образом: они просто склеены один за другим. Его иногда называют «конкатенацией строк».

Вы видите в инспекторе переменных с правой стороны, что значения, связанные с переменными a и b , заключены в кавычки? Это означает, что в значениях есть строка, а не числа. Строки и числа представлены в Python по-разному.

Все значения в Python называются «объектами». Каждый объект имеет определенный тип. Число 2 соответствует объекту «номер 2» типа «int» (т. Е. Целочисленному числу). Строка 'hello' соответствует объекту «string» hello '' типа «str». Каждое число с плавающей запятой представляется как объект типа «float». Тип объекта указывает, какие операции могут быть применены к нему. Например, если две переменные "first" и "second" указывают на объекты типа int , Python может их размножать. Однако, если они указывают на объекты типа str , Python не может этого сделать:

Чтобы преобразовать строку цифр в целое число, мы можем использовать функцию int() . Например, int('23') дает объект int со значением 23 .

Учитывая вышеизложенную информацию, мы можем исправить неверный вывод и правильно вывести сумму двух чисел:

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

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