How can I count the number of numbers in a string
re.findall is a pretty simple way to deal with this:
This assumes the numbers are not floats with decimal points or other non-integer things.
![]()
For counting integers only, you can use a simple regular expression:
Here ‘\d+’ means «one or more decimal characters in a row».
Note that re.findall produces a list of the results. If you only care about the number of elements ( n ), this is wasteful for input strings containing very many numbers. Instead, make use of an iterator approach, e.g.
Incorporating floats
Let’s say that you allow float s like 1.2 and 3e-4 etc. as well. The corresponding regular expression is now much more complicated, and an easier solution would be to just loop over all «words» in the string and check if they can be interpreted as a number:
Как я могу посчитать количество цифр в строке
Я знаю, что isdigit возвращает true или false, если полная строка является числом, но я хочу проверить, содержит ли строка число, например, «1dfsfsfs» вернет false, но содержит ли оно цифру. Так какой метод я бы использовал, чтобы узнать это?
2 ответа
Попробуйте это с картой и лямбда
это даст вам количество цифр в строке
объяснение: set(a) —convert string в уникальный элемент (потому что функция map берет итератор или список для отображения его на функцию)
эта лямбда-функция помогает нам найти, если это цифра, то она вернет 1, а если нет, то вернет 0
это вернет что-то вроде этого [0,1,1,1,1,1]
это будет суммировать все значения в списке, и таким образом вы найдете количество
Как посчитать цифры, буквы, пробелы для строки в Python?
Я пытаюсь создать функцию для определения количества цифр, букв, пробелов и других символов в строке.
Вот что у меня есть на данный момент:
Что не так с моим кодом и как я могу улучшить его до более простого и точного решения?
12 ответов
Вот еще вариант:
Если вам нужно простое решение, используйте понимание списка, а затем получите len этого списка:
Это можно применить к isalpha() аналогичным образом.
Следующий код заменяет любой нун-числовой символ на », позволяя вам подсчитать количество таких символов с помощью функции len.
Вы не должны устанавливать x = [] . Это установка пустого списка для введенного вами параметра. Кроме того, используйте синтаксис for i in x Python следующим образом:
«, строка 1, в count(aasdfs1111xxx) NameError: name ‘ aasdfs1111xxx’ не определен
1
26
sadw96aeafae4awdw2 wd100awd
4
1
19
Четыре цифры: 96, 4, 2, 100. Количество пробелов = 1. Количество букв = 19.
Чтобы подсчитать количество букв в строке:
Блок числовых строк будет в обратном порядке:
В этом коде 2 ошибки:
1) Вы должны удалить эту строку, так как она перезапишет x в пустой список:
2) В первом операторе «если» вы должны сделать отступ для оператора «буква += 1», например:
Игнорируя все остальное, что может быть или не быть правильным с вашим «пересмотренным кодом», проблема, вызывающая ошибку, которая в настоящее время цитируется в вашем вопросе, вызвана вызовом функции «count» с неопределенной переменной, потому что вы не указали строку.
- count(thisisastring222) ищет переменную с именем thisisastring222 для передачи в функцию с именем count. Чтобы это работало, вам нужно было определить переменную ранее (например, с помощью thisisastring222 = «AStringWith1NumberInIt.» ), тогда ваша функция будет делать то, что вы хотите, с содержимым значения, хранящегося в переменной, а не с именем переменной.
- count(«thisisastring222») жестко кодирует строку «thisisastring222» в вызове, что означает, что функция count будет работать с переданной ей строкой.
Чтобы исправить вызов вашей функции, просто добавьте кавычки вокруг asdfkasdflasdfl222 , заменив count(asdfkasdflasdfl222) на count(«asdfkasdflasdfl222») .
Что касается фактического вопроса «Как считать цифры, буквы, пробелы для строки в Python», на первый взгляд остальная часть «пересмотренного кода» выглядит нормально, за исключением того, что строка возврата не возвращает те же переменные, которые вы использовали в остальной части кода. Чтобы исправить это, ничего не меняя в коде, замените number и word на digit и letters , превратив return number,word,space,other в return digit,letters,space,other , или еще лучше return (digit, letters, space, other) , чтобы соответствовать текущему поведению, а также использовать лучший стиль кодирования и явно указывать тип возвращаемого значения (в данном случае кортеж).
Это ошибка в вашем призвании. Вы вызываете код с аргументом (asdfkasdflasdfl222) , который интерпретируется как переменная. Однако вы должны вызывать его со строкой «asdfkasdflasdfl222» .
Найти количество цифр в числе в Python

В этом руководстве будут представлены методы подсчета количества цифр внутри числа в Python.
Найдите количество цифр внутри числа с помощью функции math.log10() в Python
Функция math.log10() внутри модуля math Python используется для поиска журнала по основанию 10 для любого указанного числа. Поскольку целые числа также находятся в базе 10, мы можем получить количество цифр внутри указанного целого числа с помощью этого метода.
Следующий фрагмент кода показывает нам, как найти количество цифр внутри числа с помощью функции math.log10() .
Мы вычислили количество цифр внутри числа -10 с помощью функции math.log10() в приведенном выше коде. Этот код также обрабатывает случай, когда число равно 0, поскольку логарифм 0 не может быть вычислен. Сначала мы проверяем, больше ли число 0. Если число больше 0, мы вычисляем цифры, беря журнал и добавляя 1 к результату. Этот процесс выполняется, потому что журнал любого числа на 1 меньше, чем количество цифр внутри этого числа.
Если число равно 0, мы устанавливаем цифры равными 1. Если число меньше 0, мы вычисляем количество цифр, беря логарифм аддитивного обратного значения этого отрицательного числа и прибавляя 2 к результату. В случае отрицательных чисел мы добавляем дополнительную единицу, потому что в этом примере мы рассматриваем знак — как цифру. В итоге печатаем количество цифр на экране.
Этот метод удобен, если мы хотим определить количество цифр внутри целого числа. Однако он не работает с десятичными числами или любыми числами с плавающей десятичной запятой.