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

Резултати

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

Пребарај: #desiro

当前筛选 #desiro清除筛选

Пока для РЖД Siemens делает монстров с неудобными и опасными лестницами, его же поезда для других заказчиков имеют низкий пол и безбарьерную горизонтальную посадку. DB Regio Bayern (один из основных региональных перевозчиков в Баварии) разместила заказ на 57 новых электропоездов различных модификаций: 18 двухэтажных четырёхвагоных Desiro HC будут работать на сети Франкония - Южная Тюрингия (Нюрбергский узел). Они будут иметь безбарьерную посадку с платформ 760 мм. Вместимость каждого поезда - 380 пассажиров, предполагается, что на пиковых направлениях они будут работать по СМЕ. 8 двухэтажных шестивагонных Desiro HC будут специально доработаны для работы на скоростной линии Нюрберг - Ерфурт. Их конструктивная скорость будет увеличена до 190 км/ч (против 160 км/ч у "базовых" Desiro), кузова будут герметичными с системой выравнивания давления (для комфортного для пассажиров прохождения туннелей на высоких скоростях), также они будут оснащены системой управления движением поездов ETCS, которая используется на скоростных линиях. Ещё 25 четырёхвагонных Desiro HC и 6 четырёхвагонных одноэтажных Mireo заказаны для сети Дунай - Изар (линии Мюнхен - Регенсбург, Мюнхен - Пассау и примыкающие к ним). Поскольку в регионе имеются низкие платформы, поезда будут дополнительно оснащены адаптационными ступеньками и специальными подъёмниками для пассажиров на инвалидных колясках. При этом с платформ 760 мм посадка будет безбарьерной. Полная вместимость Desiro HC составит 380 пассажиров (из них 20 в 1-м классе), а Mireo - 264 пассажира (из них 14 в 1-м классе). Источник новости: https://press.siemens.com/global/en/pressrelease/57-new-trains-franconia-south-thuringia-and-danube-isar-networks-2023-more-comfort-and #за_низкий_пол #двухэтажный #низкопольные_поезда #Siemens #Desiro #Mireo #Германия