Python string.isdecimal() 函数用法
2023-09-17 22:21:22
如果字符串中的所有字符都是十进制字符,则 isdecimal()
方法返回 True。如果不是,则返回 False。
十进制字符是可用于形成以 10 为基数的数字的字符。所有Unicode General Category"Nd"都被视为十进制字符。
语法:
str.isdecimal()
Parametrs:
没有。
返回值:
如果字符串中的所有字符都是小数,则返回 True;否则,即使有一个字符不是小数,也返回 False。
以下示例演示isdecimal()
方法。
numstr = '12345'
print(numstr.isdecimal()) # returns True
numstr = '10.50'
print(numstr.isdecimal()) # returns False
alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False
mystr = 'Python'
print(mystr.isdecimal()) # returns False
输出:
True
False
False
False
如果字符串包含空格、符号或字母,则 isdecimal()
方法将返回 False。
amount = '$100'
print(amount.isdecimal())
code = '#007'
print(mystr.isdecimal())
输出:
False
False
Unicode 常规类别"Nd"下的所有字符都是小数,例如 isdecimal()
返回 True,因为阿拉伯十进制 2 是小数٢
。
arabicdecimal = '٢' # 2 in Arabic
print(arabicdecimal.isdecimal())
输出:
True
上标和下标(通常使用 unicode 编写)被视为数字字符,而不是十进制字符。因此,如果字符串包含这些字符以及十进制字符,则isdecimal()
返回 False。
mystr = 'u00B23455' # returns subscript 2 with the number 3455
print(mystr.isdecimal())
mystr = 'u2156' # Unicode chars of ⅖
print(mystr.isdecimal())
mystr = 'u0032' # Unicode chars of 2
print(mystr.isdecimal())
输出:
False
False
True
下表列出了基于给定输入的isdecimal()
、isdigit()和isnumeric()方法之间的差异:
Input String Value | isdecimal() | isdigit() | isnumeric() |
---|---|---|---|
'123' | True | True | True |
'$123' | False | False | False |
'123.50' | False | False | False |
'123a' | False | False | False |
'¾' | False | False | True |
'u0034' | True | True | True |