Как посчитать количество цифр в строке python
Перейти к содержимому

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

  • автор:

Извлечь из строки числа

Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке. Например, задана строка «abc83 cde7 1 b 24». На выходе мы должны получить список [83, 7, 1, 24].

Решение задачи на языке программирования Python

Следует посимвольно перебирать строку. Если очередной символ цифра, надо добавить ее в новую строку. Далее проверять символы за ней, и если они тоже цифры, то добавлять их в конец этой новой подстроки из цифр. Когда очередной символ окажется не цифрой, или будет достигнут конец строки, то надо преобразовать строку из цифр в число и добавить в список.

s = input() length = len(s) integers = [] i = 0 # индекс текущего символа while i  length: s_int = '' # строка для нового числа while i  length and '0'  s[i]  '9': s_int += s[i] i += 1 i += 1 if s_int != '': integers.append(int(s_int)) print(integers)
5 dkfj78df 9 8 dkfj8 [5, 78, 9, 8, 8]

Обратите внимание, что данное решение извлекает именно числа, а не цифры. Иначе мы бы не получили число 78, а получили отдельно цифру 7 и цифру 8. Задача на извлечение цифр существенно проще.

Решение через цикл for:

a = input() num_list = [] num = '' for char in a: if char.isdigit(): num = num + char else: if num != '': num_list.append(int(num)) num = '' if num != '': num_list.append(int(num)) print(num_list)

Если в строке числа всегда отделены от слов пробелами, задача решается проще:

s = input() word_list = s.split() num_list = [] for word in word_list: if word.isnumeric(): num_list.append(int(word)) print(num_list)

Здесь происходит разделение строки на слова по пробелам. В цикле с помощью метода isnumeric каждое слово проверяется, является ли оно числом. Подобную задачу можно решить в одну строку, если использовать функцию filter .

s = input() word_list = s.split() num_list = [int(num) for num in filter( lambda num: num.isnumeric(), word_list)] print(num_list)

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

На практике при решении подобных задач, когда надо найти и извлечь из строки что-либо, обычно пользуются регулярными выражениями. В примере ниже не обязательно, чтобы число было отделено пробелами.

import re s = input() nums = re.findall(r'\d+', s) nums = [int(i) for i in nums] print(nums)

Для поиска вещественных чисел:

import re s = input() nums = re.findall(r'\d*\.\d+|\d+', s) nums = [float(i) for i in nums] print(nums)

X Скрыть Наверх

Решение задач на Python

Обучение Python

Обложка к статье

Обучение Python

Практически любой учебный материал по языку программирования Python, предназначенный для новичков, довольно поверхностно рассказывает о функции print( ).

Обучение Python

Изображение к материалу Условные операторы в программировании

Зачастую программистам необходимо написать код так, чтобы программа выполняла различные инструкции в зависимости от поступаемых данных. Для реализации

Обучение Python

Картинка к статье Операторы в программировании

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

Обучение Python

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

Подсчет количества символов в строке на Python

Часто возникает задача подсчета количества определенных символов в строке. Например, необходимо узнать, сколько раз буква ‘b’ встречается в строке ‘Боб был мальчиком, который любил бегать по берегу’.

Python предоставляет несколько простых способов для решения этой задачи.

Использование метода count()

Самый простой и прямой способ — использование встроенного метода count() . Этот метод принимает один аргумент — символ, который нужно найти, и возвращает количество его вхождений в строку.

s = 'Боб был мальчиком, который любил бегать по берегу' print(s.count('б')) # Выведет: 5

Использование цикла for

Если по каким-то причинам использование count() недоступно или нежелательно, можно использовать цикл for для прохода по всем символам строки и подсчета нужных.

s = 'Боб был мальчиком, который любил бегать по берегу' count = 0 for letter in s: if letter == 'б': count += 1 print(count) # Выведет: 5

Использование генераторов списков

Также можно использовать генераторы списков — это выразительный и компактный способ решения этой задачи.

s = 'Боб был мальчиком, который любил бегать по берегу' count = sum(1 for letter in s if letter == 'б') print(count) # Выведет: 5

Все эти методы вернут одинаковое количество вхождений символа в строке. Выбор метода зависит от конкретной ситуации и личных предпочтений.

Программа для нахождения количества цифр в числе

Программа принимает число и выводит количество цифр в нем.

Решение задачи

  1. Берем значение целого числа и записываем его в переменную.
  2. Используем цикл while и при помощи оператора целочисленного деления «уничтожаем» каждую цифру числа начиная с последней, а при каждой итерации цикла специально созданную переменную (так называемый счетчик цикла) увеличиваем на единицу. После того как введенное в начале число станет равным 0, цикл прекратит свою работу.
  3. Выводим значение этого счетчика на экран.
  4. Конец.

Исходный код

Ниже дан исходный код для подсчета количества цифр в данном числе. Результаты работы программы также даны ниже.

n = int(input("Введите число:")) count = 0 while(n > 0): count = count + 1 n = n // 10 print("Количество цифр равно:", count)

Объяснение работы программы

  1. Записываем введенное пользователем число в переменную n .
  2. Задаем переменную count и инициируем ее значением 0.
  3. Используем цикл while и при помощи оператора целочисленного деления «уничтожаем» каждую цифру числа начиная с конца.
  4. При каждой итерации цикла переменная count увеличивается на 1.
  5. Как только цифры в числе заканчиваются и число n становится равным 0, цикл прекращает свою работу.
  6. Выводим переменную count на экран.

Результаты работы программы

Пример 1: Введите число:123 Количество цифр равно: 3 Пример 2: Введите число:1892 Количество цифр равно: 4

Примечание переводчика

Надо заметить, что опять эту задачу можно решить намного короче, если использовать методы строк.

print("Количество цифр равно:", len(input("Введите число:")))

Здесь введенное число принимается как строка и мы просто выводим ее длину.

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

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