如何使用Python的isdigit()函数?
isdigit() 是Python的内置函数,用于检查字符串是否只包含数字字符。如果是这样,则返回 True,否则返回 False。
使用isdigit()函数非常简单,只需将待检查的字符串作为参数传递给它即可。例如:
string = "123456" print(string.isdigit()) # 输出 True
上述代码将会检查 string 变量所代表的字符串是否只包含数字字符。isdigit() 函数返回 True,因此上述代码将会输出 True。
除了字符串,isdigit() 函数也可以用于其他类型的序列,比如列表和元组。例如:
my_list = ["1", "2", "3"] print(my_list.isdigit()) # 报错,因为列表没有 isdigit() 方法。
由于列表类型没有 isdigit() 方法,上述代码将会抛出 AttributeError 异常。
需要注意的是,isdigit() 函数仅适用于 ASCII 字符串,它不支持 Unicode 字符串。如果你需要检查 Unicode 字符串是否只包含数字字符,可以使用 isnumeric() 或者 isdecimal() 函数。
isnumeric() 函数用于检查字符串是否只包含数字字符,包括数字字符和其他数字字符,比如罗马数字字符和汉字数字字符。例如:
c = "Ⅸ" print(c.isnumeric()) # 输出 True
上述代码将会检查变量 c 所代表的字符是否只包含数字字符。isnumeric() 函数返回 True,因此上述代码将会输出 True。
isdecimal() 函数用于检查字符串是否只包含十进制数字字符。它与isdigit()函数很相似,但是它不支持其他类型的数字字符,比如罗马数字字符和汉字数字字符。例如:
a = "123" print(a.isdecimal()) # 输出 True b = "Ⅸ" print(b.isdecimal()) # 输出 False
上述代码将会检查变量 a 和 b 所代表的字符串是否只包含十进制数字字符。变量 a 包含的都是十进制数字字符,因此isdecimal() 函数返回 True;而变量 b 包含了罗马数字字符,因此isdecimal() 函数返回 False。
最后需要提醒的是,isdigit()、isnumeric() 和 isdecimal() 函数都是区分全角字符和半角字符的。如果你需要检查半角字符是否只包含数字字符,需要将字符串转化为全角字符后再调用这些函数。例如:
string = "123abc"
string = string.encode("utf-8").decode("utf-8", "ignore").replace(" ", " ")
print(string.isdigit()) # 输出 False
print(string.isnumeric()) # 输出 False
print(string.isdecimal()) # 输出 False
string = "123"
print(string.isdigit()) # 输出 True
print(string.isnumeric()) # 输出 True
print(string.isdecimal()) # 输出 True
上述代码将会将字符串 "123abc" 转化为全角字符并去除空格,然后调用isdigit()、isnumeric() 和 isdecimal() 函数检查字符串是否只包含数字字符。由于字符串中包含字母,所以这些函数都返回 False。
接着,上述代码又定义了一个全角字符的字符串,然后调用这些函数检查字符串是否只包含数字字符。由于字符串只包含十进制数字字符,所以这些函数都返回 True。
总之,isdigit() 函数是Python中常用的字符串检查函数之一,可以检查字符串是否只包含数字字符。如果你需要检查字符串是否包含其他类型的数字字符,可以使用 isnumeric() 或者 isdecimal() 函数。需要注意的是,这些函数都是区分半角字符和全角字符的,如果需要检查半角字符,需要将字符串转化为全角字符后再调用这些函数。
