Python str только цифры

Строковая функция str.isdigit() в Python

Функция String isdigit() в Python возвращает True, если все символы в строке являются цифрами, в противном случае – False. Если строка пуста, функция возвращает False.

Цифры Unicode включают десятичные символы и цифры, требующие особой обработки, например цифры надстрочного индекса совместимости. Это касается цифр, которые нельзя использовать для образования чисел с основанием 10, таких как числа Харости. Цифра – это символ, имеющий значение свойства Numeric_Type = Digit или Numeric_Type = Decimal.

Давайте посмотрим на некоторые примеры функции str.isdigit().

Вывод: True, потому что все символы в строке являются цифрами.

Вывод: False, потому что символы строки не являются цифрами.

Вывод: False, поскольку точка не является цифрой.

Выход: False, потому что строка пуста.

s = '1٠2?' # U+0660=0, U+1D7DC=4 print(s.isdigit()) print(int(s))

Печать всех цифровых символов в Python

Мы можем использовать модуль Unicode, чтобы проверить, является ли символ цифрой или нет. Вот программа для печати всех цифр Unicode-символов.

import unicodedata count = 0 for codepoint in range(2 ** 16): ch = chr(codepoint) if ch.isdigit(): print(u': <> (<>)'.format(codepoint, ch, unicodedata.name(ch, 'UNNAMED'))) count = count + 1 print(f'Total Number of Digit Unicode Characters = ')
. ff16: 6 (FULLWIDTH DIGIT SIX) ff17: 7 (FULLWIDTH DIGIT SEVEN) ff18: 8 (FULLWIDTH DIGIT EIGHT) ff19: 9 (FULLWIDTH DIGIT NINE) Total Number of Digit Unicode Characters = 465

Источник

Блог питониста

Изображение гика

Недавно была одна задача, в принципе, элементарная, но, видимо, не нaстолько простая, как показалось мне на первый взгляд.

Представьте, что у вас есть строка вида «+7 (123) 4567890» , вам нужно взять из нее только цифры. «Что может быть проще?», — подумал я и, конечно, не сделал так:

1 phone_number = "+7 (123) 4567890" 2 phone_number = phone_number.replace('+', '').replace(' ', '').replace('(', '').replace(')', '') 

Кроме того, я решил не использовать регулярки, потому что, как говорится, «Если у тебя есть проблема и ты ее решил регуляркой, то у тебя две проблемы». Я сделал так:

1 phone_number = "+7 (123) 4567890" 2 for char in ('+', ' ', '(', ')'): 3 phone_number = phone_number.replace(char, '') 

Это, конечно, лол, но мне тогда показалось это хорошим решением. Но что, если по какой-то причине вариантов нецифровых символов будет больше, что, переписывать код? Не говоря уже о том, что это можно сделать короче и красивее. Увидев этот код, коллега попросил меня его срочно переписать, и он был прав. Сначала стоит вспомнить, что у строки есть метод isdigit :

1 print(''.join([x for x in '+7 (123) 4567890' if x.isdigit()])) 

Ну или, к примеру, так, если вы любите лямбды:

1 print(''.join(filter(lambda x: x.isdigit(), "+7 (123) 4567890"))) 

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

1 import re 2 print(re.sub("\D", "", '+7 (123) 4567890')) 
1 import re 2 print(''.join(re.findall('\d', '+7 (123) 4567890'))) 

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

Читайте также:  Проверка на переполнение java

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

У каждого есть внутренний голос, который время от времени говорит: «лол, ты ничтожество». И без этого внутреннего голоса мы бы не лезли по книгам, не пересматривали по три раза написанное или не убивали бы 20-30 часов в месяц на переписывание «с нуля» уже имеющегося кода\текста\макета (берите любую созидательную профессию). Не знаю, может у женщин психика как-то устроена иначе, но мужской коллектив, состоящий из профессионалов — это Колизей насилия и взаимного угнетения знанием, в котором постоянно льется чья-то интеллектуальная кровь. При этом параллельно эти люди протягивают друг другу «бинты» и прочие «медикаменты» в виде информации и советов. А вот вопрос взаимопомощи и социального контакта — совершенно иная плоскость. При наличии наставника, который покажет на ошибки и научит их исправлять, любой с «синдромом самозванца» будет расти и крепнуть как специалист.

Короче, я к тому, что методы оправдывают цели, в большинстве случаев. И конкретно в моем случае, если бы не постоянный гнет моего внутреннего «самозванца» вкупе с парой-тройкой «церберов», которые тыкали мне на мои ошибки, ничему бы я так толком и не научился. Тепло, ласка, поддержка и кружечка какао — расслабляют, дают ложное чувство «ай, и так сойдет». С другой стороны — никто не может критиковать тебя сильнее, чем ты сам. Если твою работу жестче оценивает кто-то из вне (а не ты сам), при этом тебе кажется эта критика необьективной (при минимум одинаковом уровне компетенции), то, товарищ, у тебя проблемы с самооценкой, что фатально.

Поэтому я не вижу серьезной проблемы в «синдроме самозванца» — это очередной адаптивный механизм психики, без которого этот мир бы не существовал.

Источник

2 простые способы извлечения цифр из строки Python

Здравствуйте, читатели! В этой статье мы будем сосредоточиться на способах извлечения цифр из строки Python. Итак, давайте начнем.

Читайте также:  Wordpress pdf to html

2 простые способы извлечения цифр из строки Python

Здравствуйте, читатели! В этой статье мы будем сосредоточиться на способы извлечения цифр из строки Python Отказ Итак, давайте начнем.

1. Использование функции ISDIGIT () для извлечения цифр из строки Python

Python предоставляет нам string.isdigit () Чтобы проверить наличие цифр в строке.

Python Isdigit () Функция возвращает Правда Если входная строка содержит цифровые символы в нем.

Нам не нужно проходить ни один параметр к нему. В качестве вывода он возвращает true или false в зависимости от наличия цифр символов в строке.

inp_str = "Python4Journaldev" print("Original String : " + inp_str) num = "" for c in inp_str: if c.isdigit(): num = num + c print("Extracted numbers from the list : " + num)

В этом примере мы имеем итерацию входной строки символа по символу с использованием A для LOOP. Как только функция ISDIGIT () сталкивается с цифрой, она будет хранить его в строковую переменную с именем «NUM».

Таким образом, мы видим вывод, как показано ниже

Original String : Python4Journaldev Extracted numbers from the list : 4

Теперь мы можем даже использовать понимание списка Python для клуба итерации и iDigit () в одну строку.

При этом цифры символов хранятся в списке «Num», как показано ниже:

inp_str = "Hey readers, we all are here be 4 the time!" print("Original string : " + inp_str) num = [int(x) for x in inp_str.split() if x.isdigit()] print("The numbers list is : " + str(num))
Original string : Hey readers, we all are here be 4 the time! The numbers list is : [4]

2. Использование библиотеки Regex для извлечения цифр

Библиотека регулярных выражений Python называется « » Библиотека Regex «Позволяет нам обнаружить наличие конкретных символов, таких как цифры, некоторые специальные символы и т. Д. Из строки.

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

Далее мы мы Re.findall (R ‘\ D +’, String) Чтобы извлечь цифры символов из строки. Часть ‘\ D +’ поможет функцию findall () для обнаружения наличия любой цифры.

import re inp_str = "Hey readers, we all are here be 4 the time 1!" print("Original string : " + inp_str) num = re.findall(r'\d+', inp_str) print(num)

Итак, как видно ниже, мы получим список всех цифр из строки.

Original string : Hey readers, we all are here be 4 the time 1! ['4', '1']

Заключение

По этому, мы подошли к концу этой темы. Не стесняйтесь комментировать ниже, если вы столкнетесь с любым вопросом.

Я рекомендую всем вам попробовать реализацию приведенных выше примеров с использованием структур данных, таких как списки, Dict и т. Д.

Для большего количества таких постов, связанных с Python, оставаться настроенными, а до тех пор, как потом, счастливое обучение !! 🙂.

Читайте ещё по теме:

Источник

Синтаксис и примеры использования метода isdigit() для обработки строк в Python

Синтаксис и примеры использования метода isdigit() для обработки строк в Python

Метод isdigit() — это встроенный метод в Python, который позволяет проверить, содержит ли строка только десятичные цифры. Метод возвращает True , если все символы в строке являются десятичными цифрами, и False в противном случае. Давайте рассмотрим подробнее, как использовать метод isdigit() в Python.

Читайте также:  Quit exit разница python

Синтаксис

Синтаксис метода isdigit() прост:

где string — это строка, которую нужно проверить. Метод возвращает True , если все символы в строке являются десятичными цифрами, и False в противном случае.

Примеры использования метода isdigit()

Метод isdigit() может использоваться для проверки строк на наличие только десятичных цифр. Рассмотрим несколько примеров:

string1 = "12345" string2 = "12.345" string3 = "0" string4 = "" print(string1.isdigit()) # Output: True print(string2.isdigit()) # Output: False print(string3.isdigit()) # Output: True print(string4.isdigit()) # Output: False

В этом примере мы определяем четыре строки: string1 , string2 , string3 и string4 . Первые две строки содержат десятичные цифры и знаки пунктуации, а последние две строки — пустые строку и строку, не содержащую десятичные цифры. Затем мы вызываем метод isdigit() на каждой из этих строк, и метод возвращает True или False в зависимости от того, содержит ли строка только десятичные цифры.

Ограничения метода isdigit()

Наконец, стоит отметить, что метод isdigit() не считает знаки пунктуации, пробелы или другие символы в качестве десятичных цифр. Например, строка «12,345» не будет считаться десятичной, потому что она содержит запятую.

Также метод isdigit() не считает цифры в других системах счисления (например, римские цифры) десятичными цифрами. Если вы хотите проверить, содержит ли строка только десятичные цифры в определенной системе счисления, вы можете использовать другие методы, такие как isdecimal() или isnumeric() .

Различие между методами isdigit(), isdecimal() и isnumeric()

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

  • Метод isdigit() проверяет, содержатся ли в строке только десятичные цифры (0-9). Он возвращает True , если все символы в строке являются десятичными цифрами, и False в противном случае.
  • Метод isdecimal() также проверяет, содержатся ли в строке только десятичные цифры (0-9). Он возвращает True , только если все символы в строке являются десятичными цифрами, и False в противном случае. Однако, метод isdecimal() не считает цифры в других системах счисления (например, римские цифры) десятичными цифрами.
  • Метод isnumeric() проверяет, являются ли все символы в строке числами. Он возвращает True , если все символы в строке являются числами (включая десятичные цифры, цифры в других системах счисления, дробные числа, числа в научной нотации и другие числовые символы), и False в противном случае.

Заключение

Метод isdigit() — это полезный метод для проверки, содержит ли строка только десятичные цифры. Он может использоваться для проверки ввода пользователя или для обработки строк в программе. Будьте внимательны к ограничениям метода isdigit() , и используйте его в соответствии с задачами, которые вы хотите решить. Если вы хотите проверить, содержатся ли в строке цифры в других системах счисления или другие числовые символы, вы можете использовать другие методы, такие как isdecimal() или isnumeric() .

Источник

Оцените статью