В продолжение прошлого поста про цифры в мире строк.
Почему методы isdigit() и isnumeric() не определяют в строке float и отрицательные значения?
Дело в том, что эти методы работают с ЦИФРАМИ, то есть с единичным символом. А строка "-2" или "3.4" это уже ЧИСЛО. То есть не символ а значение, записанное несколькими символами.
Все озвученные методы проходятся по каждому символу строки и проверяют их индивидуально.
В юникоде есть символы цифр с точками "🄀⒈⒉⒊⒋⒌⒍⒎⒏⒐"
Каждая из них это ОДИН СИМВОЛ, поэтому он будет считаться цифрой
>>> '⒌'.isdigit(), '⒌'.isnumeric()
True, True
Но когда мы пишем это выражение в два символа ( 5+точка), то это не работает.
>>> '5.'.isdigit(), '5.'.isnumeric()
False, False
А еще есть такие символы
>>> '⑴⑵⑶⑷⑸'.isdigit()
True
>>> '🄁🄂🄃'.isdigit()
True
Но они не преобразуются в десятичные цифры
>>> '⒈'.isdecimal()
False
>>> '🄃'.isdecimal()
False
>>> '⑶'.isdecimal()
False
#basic
#sheriyat#surishkerak#vatanparvar
Vatanparvar boʻlay deyman boʻlolmayman.
Bu vatandan ketay deyman ketolmayman.
Zarra Foydam teksin millatga deya
Fikri ojizimni bayon etolmayman.
Kundalikda adolatni koʻrolmayman
Kim toʻgʻriyu kim egri hech bilomayman
Xalqim azob chekishiga chidolmayman.
Lekin vatanimni tashlab ketolmayman.
Tarix guvoh bu millat koʻp azob chekdi
Kuzda, kunu-tunda tonna paxta terdi
Emizikli bolasini chetga qoʻyib
Daladan oq oltin yigʻib yovga berdi
Zahmat chekkan millatini, tarixini,
Xalqning pulin yeb yotganlar bilmaydimi?
Vatan uchun shahid ketgan ajdodlarini
Vijdon amri ila bir bor yotlamaydimi?
Ey oʻzbek! Oʻzing uchun, millating uchun,
Halol yasha, haqni bil, adolatni tut.
Muqaddas zamin uchun, shu tuproq uchun
Ilm izla, xizmat qil, minnatni unut!
(c)