测试字符串的组成
Python 的 str
类型还具有许多可用于评估字符串内容的方法。这些是 str.isalpha
,str.isdigit
,str.isalnum
,str.isspace
。资本化可以通过 str.isupper
,str.islower
和 str.istitle
进行测试。
str.isalpha
str.isalpha
不带参数,如果给定字符串中的所有字符都是字母,则返回 True
,例如:
>>> "Hello World".isalpha() # contains a space
False
>>> "Hello2World".isalpha() # contains a number
False
>>> "HelloWorld!".isalpha() # contains punctuation
False
>>> "HelloWorld".isalpha()
True
作为边缘情况,当与 "".isalpha()
一起使用时,空字符串的计算结果为 False
。
str.isupper
,str.islower
,str.istitle
这些方法测试给定字符串中的大小写。
str.isupper
是一个方法,如果给定字符串中的所有字符都是大写,则返回 True
,否则返回 False
。
>>> "HeLLO WORLD".isupper()
False
>>> "HELLO WORLD".isupper()
True
>>> "".isupper()
False
相反,str.islower
是一种方法,如果给定字符串中的所有字符都是小写,则返回 True
,否则返回 False
。
>>> "Hello world".islower()
False
>>> "hello world".islower()
True
>>> "".islower()
False
如果给定的字符串是标题的,则 str.istitle
返回 True
; 也就是说,每个单词都以大写字符开头,后跟小写字符。
>>> "hello world".istitle()
False
>>> "Hello world".istitle()
False
>>> "Hello World".istitle()
True
>>> "".istitle()
False
str.isdecimal
,str.isdigit
,str.isnumeric
str.isdecimal
返回字符串是否为十进制数字序列,适合表示十进制数。
str.isdigit
包括不适合表示十进制数的形式的数字,例如上标数字。
str.isnumeric
包括任何数字值,即使不是数字,例如 0-9 范围之外的值。
isdecimal isdigit isnumeric
12345 True True True
១2߃໔5 True True True
①²³🄅₅ False True True
⑩⒓ False False True
Five False False False
Bytestrings(Python 3 中的 bytes
,Python 2 中的 str
),仅支持 isdigit
,它仅检查基本的 ASCII 数字。
与 str.isalpha
一样,空字符串的计算结果为 False
。
str.isalnum
这是 str.isalpha
和 str.isnumeric
的组合,特别是如果给定字符串中的所有字符都是字母数字,则它会计算为 True
,即它们由字母或数字字符组成:
>>> "Hello2World".isalnum()
True
>>> "HelloWorld".isalnum()
True
>>> "2016".isalnum()
True
>>> "Hello World".isalnum() # contains whitespace
False
str.isspace
如果字符串仅包含空格字符,则评估为 True
。
>>> "\t\r\n".isspace()
True
>>> " ".isspace()
True
有时字符串看起来空但我们不知道是否因为它只包含空格或根本没有字符
>>> "".isspace()
False
为了涵盖这种情况,我们需要额外的测试
>>> my_str = ''
>>> my_str.isspace()
False
>>> my_str.isspace() or not my_str
True
但是测试字符串是空的还是只包含空格字符的最短方法是使用 strip
(没有参数它会删除所有前导和尾随空白字符)
>>> not my_str.strip()
True