Как я могу посчитать количество чисел в строке
«2019 год был отличным годом для 10 счастливчиков в возрасте от 20 до 60 лет».
Результат должен быть 4 (2019, 10, 20, 60) Спасибо
4 ответа
Только для подсчета целых чисел вы можете использовать простое регулярное выражение:
Здесь ‘\d+’ означает «один или несколько десятичных символов в строке».
Обратите внимание, что re.findall производит list результатов. Если вас интересует только количество элементов ( n ), это бесполезно для входных строк, содержащих очень много чисел. Вместо этого используйте итераторный подход, например,
Включение поплавков
Допустим, вы разрешаете float , например, 1.2 , 3e-4 и т. Д. Соответствующее регулярное выражение теперь намного сложнее, и более простым решением было бы просто перебрать все «слова» в строке и проверить, можно ли их интерпретировать как число:
Я бы разбил строку на токены, используя s.split(‘ ‘) , итерировал по каждому из них и использовал регулярное выражение типа \d+ , чтобы проверить, что каждый символ является цифрой, и накапливать хорошие тестовые ответы в int.
re.findall — довольно простой способ разобраться с этим:
Это предполагает, что числа не являются числами с плавающей запятой или другими нецелыми числами.
Функция len() в Python, считает количество элементов.
Возвращает количество элементов в последовательности.
Синтаксис:
Параметры:
- s — последовательность или коллекция.
Возвращаемое значение:
Описание:
Функция len() возвращает длину (количество элементов) в объекте.
Аргумент может быть последовательностью, такой как строка, байты, кортеж, список или диапазон или коллекцией (такой как словарь, множество или неизменяемое множество).
Когда объект является строкой, функция len() возвращает количество символов в строке.
Пользовательские типы данных могут определять метод __len__() , значение из которого, будет возвращено при вызове функции len() .
Примеры подсчета количества элементов в последовательности.
Использование функции len() для подчеркивания строки:
Использование функции len() (как один из вариантов) в итерации по индексам последовательности:
По индексам последовательности, конечно удобнее итерироваться при помощи функции enumerate() .
Подсчет количества цифр в числе (длина числа)
Для того, чтобы посчитать количество цифр в числе необходимо сначала перевести число float или int в любую последовательность, например в строку, а затем к последовательности применить функцию len() , что бы получить количество элементов.
Для получения строкового представления объектов float и int , применим к ним функцию str.
Пример получения длины целого числа:
Так как вещественные числа в Python имеют запятую, то количество цифр в числе float будет на 1 меньше, а именно len(str(float)) — 1 .
Пример получения длины вещественного числа:
Чтобы получить количество уникальных цифр в числе, необходимо строковое представление числа преобразовать в множество set , т.к. множество представляет собой последовательность неповторяющихся элементов.
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 .
Учитывая вышеизложенную информацию, мы можем исправить неверный вывод и правильно вывести сумму двух чисел: