У строки в 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
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@CustomerSupportFx010
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286
TRADING INVESTMENT PLAN
If you know you have $1000 and above this is your opportunity to make it big in our Investment plan. Offer closing soon
#5DAYS PLAN👇👇
PROMO PLAN
INVEST $1000 GET $15,000
INVEST $2000 GET $30,000
INVEST $3000 GET $45,000
INVEST $4000 GET $60,000
INVEST $5000 GET $75,000
#10DAYS PLAN👇👇
INVEST $10,000 GET $150,000
INVEST $20,000 GET $300,000
INVEST $50,000 GET $800,000
FOR INTERESTED INVESTORS SEND ME YOUR FULL NAME, CONTACT NUMBER, NATIONALITY , EMAIL ADDRESS AND BTC OR USDT WALLET ADDRESS FOR RECEIVING RETURNS
Payment Method
👇👇
Bitcoin✔️✔️
USDT✔️✔️
Dm me now for your trading plan
@GaryGoldtrader010
@GaryGoldtrader010
Connect the admin on WhatsApp
👇👇👇👇👇👇👇👇👇👇👇👇
https://wa.me/56964558286