欢迎访问宙启技术站
智能推送

如何使用Python的isdigit()函数?

发布时间:2023-06-23 08:05:14

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() 函数。需要注意的是,这些函数都是区分半角字符和全角字符的,如果需要检查半角字符,需要将字符串转化为全角字符后再调用这些函数。