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 слични објави

Пребарај: #joyfulreunion

当前筛选 #joyfulreunion清除筛选

На просторах интернета поймала переводы двух новелл Фэйтянь Есяна (Fei Tian Ye Xiang / 非天夜翔) из одной вселенной, коими спешу с вами поделиться ✦ Радость встречи / Joyful Reunion / 相見歡 (2016, 228ch) jjwxc древнекитайский сеттинг, боевые искусства, драма Описание: Его звали Дуань Лин. Сколько себя помнил, он всегда был сыном из беднейшего рода. Уже в детстве он терпел множество лишений, пока человек по имени Лан Цзюнься не забрал его. Он накормил Дуань Лина, дал ему образование, новый дом, и обещал, что как только зацветут персиковые деревья, отец мальчика вернётся за ним. И отец вернулся. Он оказался гораздо удивительнее и могущественнее, чем мог представить Дуань Лин. Теперь мальчик не был безродным ублюдком без кола и двора. Целая империя должна была лежать у его ног. Но в неспокойные времена, когда во всех четырех концах света зажглись маяки войны, его отец сказал, что у каждого есть предначертанная ему судьба, и их судьба — это путь гуманного правления, вот почему они никогда не могли довольствоваться своим маленьким уголком мира. Им было суждено... нести ярость захваченной империи, терпеть боль утраты родины; жить так, как того требовала сама судьба. Оригинальный текст Полный английский перевод (foxghost) Русский перевод (онгоинг, wattpad Holylance, осталось где-то 40 частей) ✦ На горе есть деревья / O, the Mountains Have Trees / 山有木兮 (2020, 200ch) jjwxc древнекитайский сеттинг, боевые искусства, повседневность, приключения Описание: На горе есть деревья, на деревьях есть ветви. Я люблю его, но князь об этом не знает Княжество Юн направило лучшего убийцу Поднебесной, непревзойденного Гэн Юаня, дабы он сыграл на цине на встрече представителей четырех княжеств, которые решились выступить вместе в поход против Юн. Враги умылись кровью, и Поднебесная погрузилась в хаос, ускоривший падение императорского дома. Тревожные огни сигнальных башен заполыхали по всему Шэньчжоу. Спустя три года судьба свела вместе двух мальчиков необычного происхождения — Цзян Хэна и Гэн Шу. Шесть великих убийц наделили их удивительным мастерством, и дети вступили на трудный путь, ведущий к объединению Срединных земель. Горные пики оседают, в зимнем небе гремит гроза, небеса сливаются с землей - но за ушедшей весной приходит новая весна, снег все равно тает и уходит под землю, а персики цветут так же пышно, как и прежде... Оригинальный текст Английский перевод (онгоинг, Chickengege, доступны 103 главы) Русский перевод (онгоинг, wattpad Tatta2018 — переводчик Динхайских хроник) Арт к новелле "На горе есть деревья". Cr. 舟行绿水 #China#novel#FeiTianYeXiang#JoyfulReunion#ShanYouMuXi#список