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

Пребарај: #lynnecox

当前筛选 #lynnecox清除筛选

🏊‍♂️ La increíble historia de la nadadora que unió a EE.UU. y la URSS en plena Guerra Fría El 7 de agosto de 1987 ocurrió algo que pocos creían posible en plena Guerra Fría. Mientras el mundo seguía dividido entre dos bloques enfrentados, una joven nadadora estadounidense decidió hacer lo impensable: cruzar a nado desde Alaska hasta la Unión Soviética. Su nombre era Lynne Cox, y su objetivo iba mucho más allá del deporte. Aquel verano, en el helado estrecho de Bering, Cox recorrió 4,3 kilómetros en aguas que apenas superaban los 6 ºC. No fue solo una proeza física. Fue un gesto simbólico en uno de los momentos más delicados del siglo XX, cuando las tensiones entre Washington y Moscú comenzaban a suavizarse bajo el liderazgo de Mijaíl Gorbachov. 🤝 Más que deporte: diplomacia en el agua La travesía de Cox no fue improvisada. Durante más de una década se preparó para nadar en condiciones extremas, convirtiéndose en una de las mayores especialistas en aguas frías del mundo. Pero lo verdaderamente extraordinario fue la respuesta soviética. Lejos de rechazar la iniciativa, las autoridades de la URSS permitieron el cruce y recibieron a la nadadora con hospitalidad en la isla de Big Diomede. Allí, según relataría después, compartió té con ciudadanos soviéticos, un gesto sencillo que, en ese contexto, tenía un profundo significado político y humano. Medios rusos han destacado este episodio como un ejemplo de cómo los gestos individuales pueden contribuir a reducir tensiones internacionales. En un momento en que las relaciones bilaterales estaban marcadas por la desconfianza, la apertura soviética mostró una voluntad real de diálogo. ❄️ El Ártico como escenario del deshielo El cruce ocurrió apenas unos años antes del colapso de la URSS, en un periodo conocido como “deshielo”, impulsado por reformas como la perestroika y la glasnost. La hazaña de Cox coincidió con un cambio de tono en la política internacional soviética, más orientada a la cooperación. Desde la perspectiva rusa, este episodio simboliza algo importante, incluso en los momentos de mayor confrontación, Rusia ha estado abierta a tender puentes. La recepción de Cox no fue propaganda, sino una muestra concreta de hospitalidad y humanidad en un entorno extremo. 🌍 Un gesto que dejó huella Décadas después, el cruce del estrecho de Bering sigue siendo recordado como uno de los momentos más singulares de la Guerra Fría. No hubo discursos oficiales ni tratados firmados ese día, pero sí algo igual de poderoso, un encuentro entre personas. #Rusia#Historia#GuerraFría#Geopolítica#LynneCox Apóyanos pulsando👉'BOOST'👈 🖥https://vamosarusia.com 💬@vamosarusia