Python字符串isdigit()

时间:2020-02-23 14:43:27  来源:igfitidea点击:

如果字符串中的所有字符都是数字,则Python String isdigit()函数将返回True,否则返回False。
如果字符串为空,则此函数返回False。

Python字符串isdigit()

Unicode数字包括十进制字符和需要特殊处理的数字,例如兼容性上标数字。
它涵盖了不能用于以10为底的数字的数字,例如Kharosthi数字。
数字是具有属性值Numeric_Type = Digit或者Numeric_Type = Decimal的字符。

让我们看一下isdigit()函数的一些示例。

s = '100'

print(s.isdigit())

输出:True,因为字符串中的所有字符都是数字。

s = '0xF'
print(s.isdigit())

输出:False,因为字符串不是数字。

s = '10.55'
print(s.isdigit())

输出:False,因为点字符不是数字字符。

s = ''
print(s.isdigit())

输出:False,因为字符串为空。

s = '1٠2?'  # U+0660=0, U+1D7DC=4
print(s.isdigit())
print(int(s))

输出:

True
1024

在Python中打印所有Digit字符

我们可以使用unicode模块来检查字符是否为数字。
这是打印所有数字Unicode字符的程序。

import unicodedata

count = 0
for codepoint in range(2 ** 16):
  ch = chr(codepoint)
  if ch.isdigit():
      print(u'{:04x}: {} ({})'.format(codepoint, ch, unicodedata.name(ch, 'UNNAMED')))
      count = count + 1
print(f'Total Number of Digit Unicode Characters = {count}')

输出:

...
ff16: 6 (FULLWIDTH DIGIT SIX)
ff17: 7 (FULLWIDTH DIGIT SEVEN)
ff18: 8 (FULLWIDTH DIGIT EIGHT)
ff19: 9 (FULLWIDTH DIGIT NINE)
Total Number of Digit Unicode Characters = 465