DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

isdecimal, isdigit & isnumeric in Python

Buy Me a Coffee

*Memo for string, bytes and bytearray functions:

*Memo for a string, bytes and bytearray:


isdecimal() < isdigit() < isnumeric(). *True is returned for more numeric characters as going from the left to the right.


str.isdecimal() can check if the string only has decimal characters and isn't empty as shown below:

*Memo:

  • It has no arguments.
  • bytes.isdecimal() and bytearray.isdecimal() don't exist for a bytes and bytearray respectively.

<String>:

print('12345'.isdecimal()) # Half-Width Arabic Numeral print('12345'.isdecimal()) # Full-Width Arabic Numeral print('١٢٣٤٥'.isdecimal()) # 12345 (Eastern Arabic Numeral) # True  print('¹²³⁴⁵'.isdecimal()) # 12345 (Superscript Arabic Numeral) print('₁₂₃₄₅'.isdecimal()) # 12345 (Subscript Arabic Numeral) print(''.isdecimal()) # 12 (Half-Width Roman Numeral) print(''.isdecimal()) # 12 (Full-Width Roman Numeral) print('十二'.isdecimal()) # 12 (Japanese Kanji Numeral) print('壱弐'.isdecimal()) # 12 (Japanese Kanji Numeral) print('-12345'.isdecimal()) print('1 2 3 4 5'.isdecimal()) # With spaces print('1.2345'.isdecimal()) print('1,2345'.isdecimal()) print('1.23+4.5j'.isdecimal()) print('xii'.isdecimal()) # 12 (Half-Width Alphabet) print('XII'.isdecimal()) # 12 (Full-Width Alphabet) print('0b1100'.isdecimal()) # 12 (Binary) print('0o14'.isdecimal()) # 12 (Octal) print('0xc'.isdecimal()) # 12 (Hexadecimal) print(''.isdecimal()) # False  # Extra print('①②③④⑤'.isdecimal()) print('⓵⓶⓷⓸⓹'.isdecimal()) print('❶❷❸❹❺'.isdecimal()) print('➊➋➌➍➎'.isdecimal()) print('⑴⑵⑶⑷⑸'.isdecimal()) print('⒈⒉⒊⒋⒌'.isdecimal()) print('1⃣2⃣3⃣4⃣5⃣'.isdecimal()) # False 
Enter fullscreen mode Exit fullscreen mode

str.isdigit() and bytes.isdigit() or bytearray.isdigit() can check if the string and bytes or bytearray respectively only have digital characters and ASCII decimal digital bytes and aren't empty as shown below:

*Memos:

  • Each has no arguments.

<String>:

print('12345'.isdigit()) # Half-Width Arabic Numeral print('12345'.isdigit()) # Full-Width Arabic Numeral print('١٢٣٤٥'.isdigit()) # 12345 (Eastern Arabic Numeral) print('¹²³⁴⁵'.isdigit()) # 12345 (Superscript Arabic Numeral) print('₁₂₃₄₅'.isdigit()) # 12345 (Subscript Arabic Numeral) # True  print(''.isdigit()) # 12 (Half-Width Roman Numeral) print(''.isdigit()) # 12 (Full-Width Roman Numeral) print('十二'.isdigit()) # 12 (Japanese Kanji Numeral) print('壱弐'.isdigit()) # 12 (Japanese Kanji Numeral) print('-12345'.isdigit()) print('1 2 3 4 5'.isdigit()) # With spaces print('1.2345'.isdigit()) print('1,2345'.isdigit()) print('1.23+4.5j'.isdigit()) print('xii'.isdigit()) # 12 (Half-Width Alphabet) print('XII'.isdigit()) # 12 (Full-Width Alphabet) print('0b1100'.isdigit()) # 12 (Binary) print('0o14'.isdigit()) # 12 (Octal) print('0xc'.isdigit()) # 12 (Hexadecimal) print(''.isdigit()) # False  # Extra print('①②③④⑤'.isdigit()) print('⓵⓶⓷⓸⓹'.isdigit()) print('❶❷❸❹❺'.isdigit()) print('➊➋➌➍➎'.isdigit()) print('⑴⑵⑶⑷⑸'.isdigit()) print('⒈⒉⒊⒋⒌'.isdigit()) # True  print('1⃣2⃣3⃣4⃣5⃣'.isdigit()) # False 
Enter fullscreen mode Exit fullscreen mode

<Bytes & Bytearray>:

bytes:

print('12345'.encode().isdigit()) # Half-Width Arabic Numeral # True  print('12345'.encode().isdigit()) # Full-Width Arabic Numeral print('١٢٣٤٥'.encode().isdigit()) # 12345 (Eastern Arabic Numeral) print('¹²³⁴⁵'.encode().isdigit()) # 12345 (Superscript Arabic Numeral) print('₁₂₃₄₅'.encode().isdigit()) # 12345 (Subscript Arabic Numeral) print(''.encode().isdigit()) # 12 (Half-Width Roman Numeral) print(''.encode().isdigit()) # 12 (Full-Width Roman Numeral) print('十二'.encode().isdigit()) # 12 (Japanese Kanji Numeral) print('壱弐'.encode().isdigit()) # 12 (Japanese Kanji Numeral) print('-12345'.encode().isdigit()) print('1 2 3 4 5'.encode().isdigit()) # With spaces print('1.2345'.encode().isdigit()) print('1,2345'.encode().isdigit()) print('1.23+4.5j'.encode().isdigit()) print('xii'.encode().isdigit()) # 12 (Half-Width Alphabet) print('XII'.encode().isdigit()) # 12 (Full-Width Alphabet) print('0b1100'.encode().isdigit()) # 12 (Binary) print('0o14'.encode().isdigit()) # 12 (Octal) print('0xc'.encode().isdigit()) # 12 (Hexadecimal) print(''.encode().isdigit()) # False  # Extra print('①②③④⑤'.encode().isdigit()) print('⓵⓶⓷⓸⓹'.encode().isdigit()) print('❶❷❸❹❺'.encode().isdigit()) print('➊➋➌➍➎'.encode().isdigit()) print('⑴⑵⑶⑷⑸'.encode().isdigit()) print('⒈⒉⒊⒋⒌'.encode().isdigit()) print('1⃣2⃣3⃣4⃣5⃣'.encode().isdigit()) # False 
Enter fullscreen mode Exit fullscreen mode

bytearray:

ba = bytearray print(ba('12345'.encode()).isdigit()) # Half-Width Arabic Numeral # True  print(ba('12345'.encode()).isdigit()) # Full-Width Arabic Numeral print(ba('١٢٣٤٥'.encode()).isdigit()) # 12345 (Eastern Arabic Numeral) print(ba('¹²³⁴⁵'.encode()).isdigit()) # 12345 (Superscript Arabic Numeral) print(ba('₁₂₃₄₅'.encode()).isdigit()) # 12345 (Subscript Arabic Numeral) print(ba(''.encode()).isdigit()) # 12 (Half-Width Roman Numeral) print(ba(''.encode()).isdigit()) # 12 (Full-Width Roman Numeral) print(ba('十二'.encode()).isdigit()) # 12 (Japanese Kanji Numeral) print(ba('壱弐'.encode()).isdigit()) # 12 (Japanese Kanji Numeral) print(ba('-12345'.encode()).isdigit()) print(ba('1 2 3 4 5'.encode()).isdigit()) # With spaces print(ba('1.2345'.encode()).isdigit()) print(ba('1,2345'.encode()).isdigit()) print(ba('1.23+4.5j'.encode()).isdigit()) print(ba('xii'.encode()).isdigit()) # 12 (Half-Width Alphabet) print(ba('XII'.encode()).isdigit()) # 12 (Full-Width Alphabet) print(ba('0b1100'.encode()).isdigit()) # 12 (Binary) print(ba('0o14'.encode()).isdigit()) # 12 (Octal) print(ba('0xc'.encode()).isdigit()) # 12 (Hexadecimal) print(ba(''.encode()).isdigit()) # False  # Extra print(ba('①②③④⑤'.encode()).isdigit()) print(ba('⓵⓶⓷⓸⓹'.encode()).isdigit()) print(ba('❶❷❸❹❺'.encode()).isdigit()) print(ba('➊➋➌➍➎'.encode()).isdigit()) print(ba('⑴⑵⑶⑷⑸'.encode()).isdigit()) print(ba('⒈⒉⒊⒋⒌'.encode()).isdigit()) print(ba('1⃣2⃣3⃣4⃣5⃣'.encode()).isdigit()) # False 
Enter fullscreen mode Exit fullscreen mode

str.isnumeric() can check if a string only has numeric characters and isn't empty as shown below:

*Memo:

  • It has no arguments.
  • bytes.isdecimal() and bytearray.isdecimal() don't exist for a bytes and bytearray respectively.

<String>:

print('12345'.isnumeric()) # Half-Width Arabic Numeral print('12345'.isnumeric()) # Full-Width Arabic Numeral print('١٢٣٤٥'.isnumeric()) # 12345 (Eastern Arabic Numeral) print('¹²³⁴⁵'.isnumeric()) # 12345 (Superscript Arabic Numeral) print('₁₂₃₄₅'.isnumeric()) # 12345 (Subscript Arabic Numeral) print(''.isnumeric()) # 12 (Half-Width Roman Numeral) print(''.isnumeric()) # 12 (Full-Width Roman Numeral) print('十二'.isnumeric()) # 12 (Japanese Kanji Numeral) print('壱弐'.isnumeric()) # 12 (Japanese Kanji Numeral) # True  print('-12345'.isnumeric()) print('1 2 3 4 5'.isnumeric()) # With spaces print('1.2345'.isnumeric()) print('1,2345'.isnumeric()) print('1.23+4.5j'.isnumeric()) print('xii'.isnumeric()) # 12 (Half-Width Alphabet) print('XII'.isnumeric()) # 12 (Full-Width Alphabet) print('0b1100'.isnumeric()) # 12 (Binary) print('0o14'.isnumeric()) # 12 (Octal) print('0xc'.isnumeric()) # 12 (Hexadecimal) print(''.isnumeric()) # False  # Extra print('①②③④⑤'.isnumeric()) print('⓵⓶⓷⓸⓹'.isnumeric()) print('❶❷❸❹❺'.isnumeric()) print('➊➋➌➍➎'.isnumeric()) print('⑴⑵⑶⑷⑸'.isnumeric()) print('⒈⒉⒊⒋⒌'.isnumeric()) # True  print('1⃣2⃣3⃣4⃣5⃣'.isnumeric()) # False 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)