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

Резултати

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

Пребарај: #peterthegreat

当前筛选 #peterthegreat清除筛选
Embassy of Russia in Brunei

@rusembbrunei · Post #72 · 09.06.2022 г., 09:46

On 9 June 2022 in conjunction with the 350th anniversary of Emperor #PeterTheGreat, the film “How Czar Peter the Great Married Off His Moor” was screened at the Embassy of #Russia for the staff and their family members. #PeterTheGreat350 * 9 июня с.г. в связи с 350-летием императора Петра Первого в Посольстве России в Брунее для сотрудников и членов их семей был организован показ кинофильма «Сказ про то, как царь Петр арапа женил». #Россия#Бруней#ПетрВеликий350

Embassy of Russia in Brunei

@rusembbrunei · Post #68 · 09.06.2022 г., 09:24

Today #Russia celebrates the 350th anniversary of the first Russian Emperor – #PeterTheGreat. The picture shows the draft of the Russian flag by his hand. #PeterTheGreat350 * Сегодня в России отмечается 350-летие первого российского императора – Петра Великого. На изображении – сделанный его рукой эскиз российского флага. #ПетрВеликий350

Embassy of Russia in Brunei

@rusembbrunei · Post #69 · 09.06.2022 г., 09:32

In 1703 #PeterTheGreat founded #SaintPetersburg – Russia's northern capital. #PeterTheGreat350 * В 1703 г. #ПетрВеликий основал Санкт-Петербург – северную столицу России. #ПетрВеликий350#СанктПетербург

Embassy of Russia in Brunei

@rusembbrunei · Post #164 · 10.10.2022 г., 01:52

On October 6, 2022, the Embassy of #Russia in #Brunei hosted the photo exhibition devoted to the 350th anniversary of #PeterTheGreat. Members of the diplomatic corps attended the event. During the reception guests were watching the photo gallery, the brief video about life and reign of Peter the Great, the slide show of Saint Petersburg and performances of the Russian folk arts ensembles. #PeterTheGreat350 * 6 октября с.г. в Посольстве России в Брунее прошла фотовыставка, посвященная 350-летнему юбилею Петра I. В мероприятии приняли участие члены дипкорпуса. Гости осмотрели представленные на выставке фотографии. Во время небольшого приема им были продемонстрированы краткий видеоролик о жизни и деятельности российского императора, слайд-шоу с видами Санкт-Петербурга и выступления российских ансамблей народного творчества. #ПетрВеликий350