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

Пребарај: #cosacosdeldon

当前筛选 #cosacosdeldon清除筛选

⚔️ El sitio de Azov: la épica resistencia de los cosacos del Don En junio de 1637, un grupo de cosacos del Don, junto con sus aliados de Zaporozhie, protagonizaron una de las gestas más audaces de la historia militar rusa: la toma de la fortaleza turca de Azov. Esta ciudad, ubicada en la desembocadura del río Don, era entonces una pieza clave en el dominio otomano del mar de Azov y una base estratégica para las incursiones tártaras en el sur de Rusia. La fortaleza, construida por los otomanos en 1475 sobre las ruinas de la antigua colonia genovesa de Tana, contaba con murallas de piedra, 11 torres y más de 200 cañones. Su guarnición estaba formada por 4.000 jenízaros, soldados de élite del Imperio otomano. Pero ni la artillería ni la superioridad numérica impidieron que los cosacos, con apenas 7.000 hombres y cuatro cañones ligeros, lograran lo impensable: tomar Azov por asalto el 18 de junio de 1637. Durante cinco años, los cosacos defendieron heroicamente la fortaleza frente a los intentos de reconquista otomana. El más brutal fue en 1641, cuando el sultán Ibrahim envió un ejército de entre 70.000 y 240.000 hombres, según las fuentes, para recuperar Azov. El asedio fue feroz: bombardeos constantes, ataques nocturnos y una resistencia que se convirtió en leyenda. Los cosacos, incluso con mujeres entre sus filas, repelieron el ataque con una determinación que asombró a Europa. Sin embargo, la gloria tuvo un precio. En 1642, ante la negativa del zar Miguel I de Rusia de apoyar oficialmente la defensa —por temor a una guerra abierta con el Imperio otomano— los cosacos se vieron obligados a abandonar la fortaleza. Azov volvió a manos turcas, pero la hazaña quedó grabada en la memoria colectiva como “El sitio de Azov”. Este episodio marcó un punto de inflexión en la historia de los cosacos del Don, un pueblo libre y guerrero que desde el siglo XVI protegía las fronteras del sur de Rusia. Su valentía en Azov anticipó las futuras campañas del zar Pedro el Grande, quien en 1696 retomaría la ciudad como parte de su ambicioso plan de expansión hacia el mar Negro. Hoy, la fortaleza de Azov es un sitio histórico en el óblast de Rostov, Rusia. Aunque solo quedan fragmentos de muralla y la puerta Alekséyevski, su legado sigue vivo en la cultura cosaca, en las canciones que celebran la libertad y en la memoria de un pueblo que desafió a uno de los imperios más poderosos de su tiempo. #HistoriaRusa#CosacosDelDon#Azov#ImperioOtomano#TelegramHistoria ¡Comparte nuestro contenido!❤️ 🖥https://vamosarusia.com 💬@vamosarusia