Какой функцией на языке программирования Python найти сумму цифр строки?
В программе на языке программирования Python сумму цифр содержащихся в строке с помощью функции sum, поэтому сначала потребуется преобразовать строку в последовательность чисел.
Каждый символ строки преобразуется в число (функцией map с параметром функции преобразования в виде анонимной функции преобразующей цифры в числа, а остальные символы в число 0)
для определения является ли символ цифрой удобно использовать метод строки isdigit
В этом случае анонимная функция имеет вид:
lambda x:int(x) if x.isdigit() else 0
вычислить сумму цифр строки s можно используя выражение:
как посчитать сумму цифр в строке
![]()
Вам нужно проверить можно ли из символа сделать число, это делается так:
вам надо найти сумму а не количество:
код должен быть таким:
![]()
![]()
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.9.4.43609
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Сумма чисел в строке
Добрый вечер,
В строке могут встречаться цифры и иные символы. Числом будем считать последовательность цифр, которая не может быть расширена до большего числа. Например, в строке "10+14=24" встречаются числа 10, 14, 24. Напишите программу, которая подсчитывает сумму всех чисел в данной строке.
ВХОДНЫЕ ДАННЫЕ
Программа получает на вход строку текста, длиной до 100000 символов. Строка может содержать произвольные ASCII-символы, в том числе пробелы.
ВЫХОДНЫЕ ДАННЫЕ
Программа должна вывести единственное число — сумму всех чисел в данной строке.
ВЫВОД
48
Данный код суммирует только числа разделенные пробелами.
Найти сумму цифр числа в Python
Для изучения базовых конструкций языка Python преподаватели обычно всегда предлагают простые и понятные задачи школьного уровня. Но, не смотря на это, такие задачи полезны и учат не только языку, но и умению реализовывать алгоритмы. Рассмотрим тут одну из таких задач.
Рассмотрим несколько вариантов решения этой задачи. Простейший и самій очевидный способ решения задачи состоит в том, чтобы получить каждую из цифр, составляющих данное число. Для этого последовательно будем делить исходное число n на 10 нацело (находит разряды числа). Деление будем выполнять в цикле, в котором сразу же и будем накапливать требуемую сумму цифр — suma, а также запоминать результат деления для новой итерации цикла в ту же переменную n. Деление (цикл) продолжается пока число n не достигнет нулевого значения.
Но, можно обойтись и без деления. Для этого заданное число n преобразуем в строку s, а затем переберем в цикле последовательно все символы (цифры) этой строки. Но, чтобы их можно было сложить, они должны быть преобразованы в числовые значения — int(c). И дальше остается только воспользоваться функцией sum(), чтобы сложить эти все цифры и получить сумму цифр числа — suma.
Но, нам этого мало и мы идем дальше. А можно ли при решении этой задачи избавиться от цикла. Попробуем. Решение будет похоже на предыдущее, но цикл заменим встроенной функцией map() применяемой к каждому элементу некоторого объекта. В нашем случае это символы строки str(n), полученной преобразованием исходного числа в строку и ее составляющих символов в целые числа.
Если код этого примера не совсем понятен, то проще будет понять следующий код — там используем преобразование числа в список из цифр и дальше проходимся по нему функцией map()