五、字串
字串的基本操作與元組類似,和元組一樣一旦創建就不能被修改,故修改字串的方式也和元組一樣是通過分片再拼接,構成一個新的字串來實作,所有邏輯運算子在字串中也可用,
1、字串常用方法
(1) capitalize() / casefold()
把字串開頭第一個字符改為大寫
str1 = 'august'
print(atr1.capitalize())
輸出結果:'August'
? 把字串所有字符改為小寫
str2 = 'FWtY'
print(str2.casefold())
輸出結果:'fwty'
(3) count()
回傳某子串在字串中出現的次數
count(<子串>[, <起始位置>[, <結束位置>]])
str3 = 'abababbbabc'
print(str3.count('ab')) #不寫起止位置則從整個字串查詢
輸出結果:4
(4)endswith()
檢測字串是否以指定子串結尾,是則回傳True,否則回傳False
endwith(<子串>[, <起始位置>[, <結束位置>]])
print(str3.endswith('abc'))
輸出結果:True
(5) expandtabs()
將字串中的tab符號(\t)轉換為空格,若不指定引數,默認空格數為8
expandtabs([tabsize=<空格數>])
str4 = 'I\tam\tAugust'
print(str4.expandtabs())
輸出結果:I am August
(6) find() / index()
檢測某子串是否在字串中,有則回傳索引值,沒有則回傳-1
find(<子串>[, <起始位置>[, <結束位置>]])
print(str3.find('ab'))
輸出結果:0 #若有多個位置則回傳第一個位置的索引
? 作用與find()方法相同,不過如果子串不在字串中則產生一個例外
index(<子串>[, <起始位置>[, <結束位置>]])
str3.index('d')
輸出結果:ValueError: substring not found
(7) isalnum(
如果字串至少有一個字符并且所有字符都是字母或數字則回傳 True,否則回傳 False
(8) isalpha()
如果字串至少有一個字符并且所有字符都是字母則回傳 True,否則回傳 False
(9) isdecimal()
如果字串只包含十進制數字則回傳 True,否則回傳 False
(10) isdigit()
如果字串只包含數字則回傳 True,否則回傳 False
(11) islower() / supper()
islower()如果字串中至少包含一個區分大小寫的字符,且這些字符都是大寫,則回傳 True,否則回傳 False
supper()如果字串中至少包含一個區分大小寫的字符,且這些字符都是小寫,則回傳 True,否則回傳 False
str5 = '夫無天元'
str1 = 'august'
str2 = 'FWTY'
print(str1.islower(), str5.islower(), str2.isupper())
輸出結果:True False True
(12) isnumeric()
如果字串中只包含數字字符,則回傳 True,否則回傳 False
(13) isspace()
如果字串中只包含空格,則回傳 True,否則回傳 False
(14) istitle()
如果字串是標題化(所有的單詞都是以大寫開始,其余字母均小寫),則回傳 True,否則回傳 False
str1 = 'august'
str6 = 'August'
print(str1.istitle(), str2.istitle())
輸出結果:False True
(15) join()
以子串作為分隔符,插入到字串所有的字符之間
str1 = 'august'
print(str1.(' '))
輸出結果:a u g u s t
(16) lower()
轉換字串中所有大寫字符為小寫
與casefold()的區別是lower函式只支持ascill表中的字符,而casefold則支持很多不同種類的語言
(17) lstrip()
去掉字串左邊的所有空格
str7 = 'I am August'
print(str7.lstrip)
輸出結果:‘IamAugust’
(18) partition(sub)
找到子串 sub,把字串分成一個 3 元組 (pre_sub, sub, fol_sub),如果字串中不包含 sub 則回傳 ('原字串', '', '')
str7 = 'I am August'
print(str7.partition('ug'))
輸出結果:('I am A', 'ug', 'ust')
(19) replace(old, new[, count])
把字串中的 old 子字串替換成 new 子字串,如果 count 指定,則替換不超過 count 次
str1 = 'august'
print(str1.replace('u','hhh'))
輸出結果:ahhhghhhst
(20) rfind(sub[, start[, end]])
類似于 find() 方法,不過是從右邊開始查找
(21) rindex(sub[, start[, end]])
類似于 index() 方法,不過是從右邊開始
(22) rpartition(sub)
類似于 partition() 方法,不過是從右邊開始查找
(23) rstrip()
洗掉字串末尾的空格
(24) split(sep=None, maxsplit=-1)
不帶引數默認是以空格為分隔符切片字串,如果 maxsplit 引數有設定,則僅分隔 maxsplit 個子字串,回傳切片后的子字串拼接的串列
str7 = 'I am August'
print(str7.split())
輸出結果:['I', 'am', 'August']
(25) splitlines(([keepends]))
在輸出結果里是否去掉換行符’\n’,默認為 False,不包含換行符;如果為 True,則保留換行符
(26) startswith(prefix[, start[, end]])
檢查字串是否以 prefix 開頭,是則回傳 True,否則回傳 False; start 和 end 引數可以指定范圍檢查,可選
(27) strip([chars])
洗掉字串前邊和后邊所有的空格,chars 引數可以定制洗掉的字符,可選
str8 = 'ssssaaassss'
print(str8.strip('s'))
輸出結果:aaa
(28) swapcase()
翻轉字串中的大小寫
(29) title()
回傳標題化(所有的單詞都是以大寫開始,其余字母均小寫)的字串
(30) translate(table)
根據 table 的規則(可以由 str.maketrans('a', 'b') 定制)轉換字串中的字符
str8 = 'ssssaaassss'
print(str8.translate(str.maketrans('s', 'b')))
輸出結果:bbbbaaabbbb
(31) upper()
轉換字串中的所有小寫字符為大寫
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/181817.html
標籤:Python
