TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #83 · 11 мај

У строки в Python есть два очень похожих метода. На столько похожих что кажется они делают одно и тоже. Это метод isdigit() и isnumeric() Давайте посмотрим зачем нам два одинаковых метода? И так ли они одинаковы? Очевидно что isdigit() говорит нам, состоит ли строка только из чисел 0-9 >>> '12'.isdigit() True >>> '12x'.isdigit() False >>> '-12'.isdigit() False >>> '12.5'.isdigit() False Можно предположить что isnumeric() делает более глубокий анализ и распознаёт в строке float или отрицательное число. >>> '15'.isnumeric() True >>> '-15'.isnumeric() False >>> '15.2'.isnumeric() False Нет, всё так же как и с другим методом. В чем же тогда разница? Для начала посмотрим следующие примеры: >>> '5'.isdigit(), '5'.isnumeric() # Обычная цифра 5 # True, True >>> '꧕'.isdigit(), '꧕'.isnumeric() # Яванская 5 # True, True >>> '෩'.isdigit(), '෩'.isnumeric() # Синхала 3 # True, True >>> '৩'.isdigit(), '৩'.isnumeric() # Бенгальская 3 # True, True >>> '༣'.isdigit(), '༣'.isnumeric() # Тибетская 3 # True, True >>> '³'.isdigit(), '³'.isnumeric() # 3 верхний индекс (степень) # True, True >>> '𝟝'.isdigit(), '𝟝'.isnumeric() # Математическая двойная 5 # True, True >>> '๔'.isdigit(), '๔'.isnumeric() # Тайская 4 # True, True >>> '➑'.isdigit(), '➑'.isnumeric() # 8 в круге # True, True А теперь примеры в которых, по мнению Python, результаты не равны >>> '¾'.isdigit(), '¾'.isnumeric() # дробь три четверти # False, True >>> '⅕'.isdigit(), '⅕'.isnumeric() # дробь одна пятая # False, True >>> '𒐶'.isdigit(), '𒐶'.isnumeric() # клинопись 3 # False, True >>> '三'.isdigit(), '三'.isnumeric() # 3 из унифицированной идеограммы # False, True >>> '⑩'.isdigit(), '⑩'.isnumeric() # цифра 10 в круге # False, True >>> 'Ⅳ'.isdigit(), 'Ⅳ'.isnumeric() # Римская 4 # False, True >>> '𑇪'.isdigit(), '𑇪'.isnumeric() # Сенегальская архаическая 10 # False, True >>> '𐌢'.isdigit(), '𐌢'.isnumeric() # Этрусская цифра 10 # False, True >>> 'ↂ'.isdigit(), 'ↂ'.isnumeric() # Римская цифра 10000 # False, True >>> '〇'.isdigit(), '〇'.isnumeric() # Символ ККЯ ноль # False, True Получается, что isdigit() говорит нам, является ли символ десятичной цифрой или спецсимволом, имеющим цифирное значение после преобразования. В свою очередь isnumeric() включает все дополнительные символы юникода которые имеют отношения к числовым и цифровым представлениям. Ну и пара примеров в которых в обоих случаях символ не является числом, это эмодзи. >>> '🕙'.isdigit(), '🕙'.isnumeric() # эмодзи 10 часов # False, False >>> '7️⃣'.isdigit(), '7️⃣'.isnumeric() # эмодзи 7 # False, False Также есть еще один дополнительный и весьма полезный метод isdecimal(). Он нам сообщает, можно ли из указанного символа сделать простую десятичную цифру. То есть сработает ли метод int(x) >>> '෩'.isdecimal(), int('෩') # Синхала 3 # True, 3 >>> '➑'.isdecimal(), int('➑') # 8 в круге # False, ValueError Какие выводы? 🔸 При определении цифры в строке isdigit() подходит лучше чем isnumeric(), но оба не гарантируют успешную конвертацию в int 🔸 Для однозначного определения возможности преобразования строки в int лучше подходит метод isdecimal() 🔸 Для однозначного определения символов 0...9 лучше использовать regex Полный список символов юникода которые определяются как numeric #basic

Hashtags

Резултати

Пронајдени 2 слични објави

Пребарај: #antiwar

当前筛选 #antiwar清除筛选

Ciao! 24.6. La guerra su vasta scala della Russia contro l'Ucraina dura ormai da 3 anni e 4 mesi. 1217 giorni. Leggiamo le notizie e vediamo come le città ucraine siano costantemente sottoposte ai bombardamenti più brutali. Vediamo case rase al suolo, l'impotenza e la tragedia dei civili, le lacrime dei genitori, le fotografie dei morti. 24.6 - Sono stati lanciati 368 missili e droni contro l'Ucraina. Regioni di Kiev, Dnepr, Donetsk, Kharkov, Sumy, Odessa. Secondo i dati preliminari, 19 persone sono morte, compresi bambini, e decine sono rimaste ferite. Oggi, edifici residenziali, scuole, asili e strutture mediche sono stati nuovamente distrutti. Importante di ricordarvi le nostre proteste a sostegno dell’Ucraina e ribadire ancora una volta: non abituatevi alla guerra! https://www.instagram.com/share/p/BAiwoNaDDM?fhid=QkFpd29OYURETQ Cosa più importante, vi chiediamo di sostenere la raccolta fondi del Comitato contro la Guerra. Si tratta di una raccolta punti attualmente in corso, che potremmo chiudere rapidamente tutti insieme, per le centrali elettriche portatili dell'Ospedale N7 di Zaporižžja. https://antiwarcommittee.info/en/energy-for-life/ L'importo totale mancante è di € 11.000 (su € 26.000). Siamo almeno 20 organizzazioni e se ognuna di esse raccoglie 500 euro, un lotto di questi generatori, già in attesa nel magazzino del fornitore, potrà essere spedito in Ucraina nel giro di pochi giorni. Crediamo che ci saranno 100 persone che riusciranno a trasferire 5 €! https://antiwarcommittee.info/en/energy-for-life/#donate (Tutte le spese saranno trasferite centralmente sul conto dei nostri colleghi dell'organizzazione spagnola, che elaboreranno l'ordine e supervisioneranno la consegna.) Pubblicheremo il resoconto sui social network! Per qualsiasi domanda, contattare: [email protected] #energy4UA #energy4life #russicontrolaguerra #antiwar

Привет! 24.6. Уже 3 года и 4 месяца длится полномасштабная война России против Украины. 1217 дней.. Мы смотрим новости и видим, как украинские города постоянно подвергаются жесточайшим обстрелам. Видим до основания разрушенные дома, беспомощность и трагедию мирных жителей, слезы родителей, фотографии погибших людей. 24.6 - 368 ракет и дронов было выпущено по Украине. Киев, Днепр, Донецкая, Харьковская, Сумская, Одесская область. По предварительным данным, погибло 19 человек, среди них дети, десятки раненых. Сегодня снова были разрушены жилые дома, школы, детские сады, медицинские учреждения. Хочется напомнить о наших протестах в поддержку Украины и сказать ещё раз - не привыкайте к войне! https://www.instagram.com/share/p/BAiwoNaDDM?fhid=QkFpd29OYURETQ И самое главное, просим вас поддержать сбор Антивоенного комитета. Это актуальный на данный момент точечный сбор, который мы все вместе смогли бы быстро закрыть - на портативные электростанции для Запорожской больницы N7. https://antiwarcommittee.info/energyforua/ Недостающая общая сумма €11.000 (из €26.000). Нас минимум 20 организаций, и если каждая соберет по €500, то партия этих генераторов, которая уже ждёт на складе у поставщика, сможет в считанные дни отправиться в Украину. Верим, что наберется 100 человек, которые смогут перевести по €5! https://antiwarcommittee.info/energyforua/#donate (Все сборы централизованно пойдут на счет наших коллег из испанской организации, которые оформят заказ и проконтролируют доставку.) Отчёт мы разместим в соцсетях! Если есть вопросы, задавайте: [email protected] #energy4UA #energy4life #russicontrolaguerra #antiwar