Python入门教程第88篇 常用字符串方法之字符类型检查
Posted 不剪发的Tony老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门教程第88篇 常用字符串方法之字符类型检查相关的知识,希望对你有一定的参考价值。
本篇我们学习如何判断字符串中的内容类型,包括 isdigit()、isdecimal()、isnumeric()、isalpha() 以及 isalnum() 方法。
字符串 isdigit() 方法
如果字符串至少包含一个字符,而且所有字符都数字,isdigit() 方法返回 True;否则,返回 False。isdigit() 方法的语法如下:
str.isdigit()
如果字符串中只包含 0-9 的数字,isdigit() 方法返回 True。如果字符串包含任何小数点、减号或者加号,isdigit() 返回 False。
另外,包含数字上标的字符串,例 10²,isdigit() 方法也会返回 True。
以下示例使用 isdigit() 方法检查字符串“100”中是否只包含数字字符:
quantity = '100'
print(quantity.isdigit())
输出结果如下:
True
以下示例返回了 False:
price = '9.99'
print(price.isdigit())
False
以下示例返回了 True,因为 Unicode 字符 0 和 2 属于数字:
x = "\\u0030" # unicode for 0
y = "\\u00B2" # unicode for ²
print(x.isdigit())
print(y.isdigit())
输出结果如下:
True
True
以下示例返回了 False,因为字符串为空:
empty = ''
print(empty.isdigit())
False
字符串 isdecimal() 方法
如果字符串至少包含一个字符,而且所有字符都是十进制字符,isdecimal() 方法返回 True;否则,返回 False。isdecimal() 方法的语法如下:
str.isdecimal()
十进制字符是指组成以 10 为基数的数字字符。上标属于数字,但不属于十进制字符,因此对于包含上标的字符串,isdecimal() 方法将会返回 False。
同理,罗马数字、货币分子以及分数都属于数字字符,而不属于十进制字符。
以下示例使用 isdigit() 方法检查字符串“150”中是否只包含十进制字符:
quantity = "150"
print(quantity.isdecimal())
输出结果如下:
True
以下示例返回了 False,因为字符“.”不属于十进制字符:
price = "99.9"
print(price.isdecimal())
False
字符串 isnumeric() 方法
如果字符串至少包含一个字符,而且所有字符都是数字字符,isnumeric() 方法返回 True;否则,返回 False。isnumeric() 方法的语法如下:
str.isnumeric()
与 isdigit() 方法类似,如果字符串中只包含 0-9 的数字,isnumeric() 方法返回 True。
另外,对于非英语语言中的数字字符,isnumeric() 方法也会返回 True。例如,在中文里的 1、2、3 可以用一、二、三表示,所以下面的示例返回了 True:
result = '一二三'.isnumeric()
print(result)
True
不过,以下 isdigit() 返回了 False:
result = '一二三'.isdigit()
print(result)
False
这是 isnumeric() 和 isdigit() 最主要的区别。
字符串“99.99”和“-10”都不属于数字字符,因此以下示例返回了 False:
price = '99.99'
print(price.isnumeric())
discount = '-10'
print(discount.isnumeric())
输出结果如下:
False
False
字符串 isalpha() 方法
如果字符串至少包含一个字符,而且所有字符都是字母,isalpha() 方法返回 True;否则,返回 False。isalpha() 方法的语法如下:
str.isalpha()
字母字符是指 Unicode 字符集中被定义为字母的所有字符。
以下示例使用 isalpha() 方法检查字符串“John”中是否只包含字母字符:
name = 'John'
print(name.isalpha())
输出结果如下:
True
以下示例返回了 False,因为字符串“Jane Doe”中包含了一个空格:
name = 'Jane Doe'
print(name.isalpha())
False
一般来说,如果字符串中包含任何空白字符, isalpha() 方法将会返回 False。
字符串 isalnum() 方法
如果字符串至少包含一个字符,而且所有字符都是字母或者数字,isalnum() 方法返回 True;否则,返回 False。isalnum() 方法的语法如下:
str.isalnum()
从功能上来讲,如果以下任何方法返回 True,表示字符串只包含字母或者数字字符:
- str.isalpha()
- str.isnumeric()
- str.isdecimal()
- str.isalpha()
以下示例使用 isalnum() 方法判断字符串“Python3”是否只包含字母或者数字字符:
version = 'Python3'
result = version.isalnum()
print(result)
输出结果如下:
True
以下示例返回了 False,因为字符串“Python 3”中包含了一个空格:
version = 'Python 3'
result = version.isalnum()
print(result)
False
总结
- isdigit() 方法用于检查字符串是否只包含数字字符。
- isdecimal() 方法用于检查字符串是否只包含十进制字符。
- isnumeric() 方法用于检查字符串是否只包含数字字符。
- isalpha() 方法用于检查字符串是否只包含字母。
- isalnum() 方法用于检查字符串是否只包含字母或者数字字符。
以上是关于Python入门教程第88篇 常用字符串方法之字符类型检查的主要内容,如果未能解决你的问题,请参考以下文章