測試字串的組成
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