高新西區(qū)網(wǎng)站建設(shè)廣安seo外包
目錄
9.3.1?字符串常用操作方法
9.3.2?獲取字符串長度
9.3.3?字符串的大小寫操作
9.3.4?刪除字符串中的空白字符
9.3.5?字符串的子串查找
9.3.6?字符串的子串統(tǒng)計
9.3.7?字符串的子串替換
9.3.8?字符串的拆分函數(shù)
9.3.9?字符串的前綴與后綴
9.3.10?知識要點
9.3.11 系統(tǒng)學(xué)習(xí)python
9.3.1 字符串常用操作方法
字符串類型是一種抽象數(shù)據(jù)類型,抽象數(shù)據(jù)類型定義了數(shù)據(jù)類型的操作方法,在本節(jié)的內(nèi)容中,著重介紹字符串的常用操作方法。
9.3.2 獲取字符串長度
(1) len(str)
函數(shù)說明:
返回字符串str包含的字符個數(shù)
代碼實例:
Python
# __desc__ = 執(zhí)行l(wèi)en方法來統(tǒng)計字符串中的字符數(shù)japanese = '''君のことを愛している'''
length = len(japanese)
# length指向的值為10,表示字符串變量japanese包含10個字符
9.3.3 字符串的大小寫操作
(1) str.lower()
函數(shù)說明:
將字符串str中的大小寫字符全部轉(zhuǎn)換為小寫,返回一個字符串。
代碼實例:
Python
# __desc__ = 執(zhí)行l(wèi)ower方法將字母轉(zhuǎn)換為小寫字母blessing = '2020 Is Getting BettER'
blessing = blessing.lower()
# blessing指向的值為'2020 is getting better'
(2) str.upper()
函數(shù)說明:
將字符串str中的大小寫字符全部轉(zhuǎn)換為大寫,返回一個字符串。
代碼實例:
Python
# __desc__ = 執(zhí)行upper方法將字母轉(zhuǎn)換為大寫字母blessing = '2020 is getting better'
blessing = blessing.upper()
# blessing指向的值為'2020 IS GETTING BETTER'
(3) str.islower()
函數(shù)說明:
Python中的函數(shù)名或變量名前帶上一個is的前綴,表示是否的意思,返回布爾類型。islower用來判斷字符串中的大小寫字符是否都為小寫,?如果都為小寫,就返回True,否則返回False。這里的大小寫字符主要指拉丁字母。
代碼實例:
Python
# __desc__ = 執(zhí)行islower方法來判斷是否為小寫字母blessing = '2020 is getting better'
result = blessing.islower()
# result指向的值為True,字符串中的大小寫字符均為小寫。result = 'i love u'.islower()
# result指向的值為True
(4) str.isupper()
函數(shù)說明:
isupper函數(shù)用來判斷字符串中的大小寫字符是否都為大寫,如果都為大寫,就返回True,否則返回False。這里的大小寫字符主要指拉丁字母。
代碼實例:
Python
# __desc__ = 執(zhí)行isupper方法來判斷是否為大寫字母blessing = '2020 IS GETTING BETTER'
result = blessing.isupper()
# result指向的值為True,所有大小寫字符均為大寫result = 'I LOVE U'.isupper()
# result指向的值為True
9.3.4 刪除字符串中的空白字符
(1) str.strip()
函數(shù)說明:
刪除字符串首尾的空白字符,返回一個首尾不包含空白字符的新字符串。
代碼實例:
Python
# __desc__ = 執(zhí)行strip方法來刪除首尾的空白字符blessing = '\n2020 Is Getting BettER '.strip()
# blessing指向的值為'2020 Is Getting BettER'
(2) str.lstrip()
函數(shù)說明:
函數(shù)名中的前綴l是單詞left的簡寫,該方法用來刪除字符串最左邊的空白字符,返回一個首部不包含空白字符的新字符串。
代碼實例:
Python
# __desc__ = 執(zhí)行l(wèi)strip方法來刪除首部的空白字符blessing = '\n\n 2020 Is Getting BettER '.lstrip()
# blessing指向的值為'2020 Is Getting BettER '
(3) str.rstrip()
函數(shù)說明:
函數(shù)名中的前綴r是單詞right的簡寫,該方法用來刪除字符串最右邊的空白字符,返回一個尾部不包含空白字符的新字符串。
代碼實例:
Python
# __desc__ = 執(zhí)行rstrip方法來刪除尾部的空白字符blessing = '\n\n 2020 Is Getting BettER\r\n '.rstrip()
# blessing指向的值為'\n\n 2020 Is Getting BettER'
9.3.5 字符串的子串查找
(1) str.find(sub)
函數(shù)說明:
從左到右查找子串第一次出現(xiàn)的位置,如果查找成功,返回子串在主串中的開始位置的索引,否則返回值為-1。這里的索引值同字符串索引訪問中的索引值,Python中的索引值從0開始進行編號。
代碼實例:
Python
# __desc__ = 執(zhí)行rfind方法來查找子串是否存在blessing = '2020 is getting better and better'
index = blessing.find('better')
# index指向的值為16# 查找字符串變量blessing指向的字符串中是否包含bad luck字符串
if blessing.find('bad luck') != -1:# 如果返回的索引值不等于-1,說明包含betterprint('there is no bad luck in 2020')
else:print('there is bad luck in 2020')
(2) str.rfind(sub)
函數(shù)說明:
從右到左查找子串第一次出現(xiàn)的位置,如果查找成功,返回子串在主串中的開始位置的索引,否則返回值為-1
代碼實例:
Python
# __desc__ = 執(zhí)行rfind方法來查找子串是否存在blessing = '2020 is getting better and better'
index = blessing.rfind('better')
# index指向的值為27# 查找字符串變量blessing指向的字符串中是否包含sad
if blessing.rfind('sad') != -1:# 如果返回的索引值不等于-1,說明包含betterprint('there is no sad in 2020')
else:print('there is a sad in 2020')
9.3.6 字符串的子串統(tǒng)計
(1) str.count(sub)
函數(shù)說明:
在字符串str中統(tǒng)計子串sub_str出現(xiàn)的數(shù)量,返回一個整型值。如果沒有相應(yīng)的子串,那么返回的值為0。
代碼實例:
Python
# __desc__ = 執(zhí)行count方法來計算子串的數(shù)目blessing = '2020 is getting better and better'
count = blessing.count('better')
# count的值為2
現(xiàn)在通過字符串的find方法,切片操作,以及while循環(huán)結(jié)構(gòu)來實現(xiàn)count方法的功能。
代碼實例:
Python
# __desc__ = 通過find方法,以及切片操作來實現(xiàn)count方法的功能blessing = '2020 is getting better and better'
count = 0index = blessing.find('better')# 判斷index是否等于-1,如果等于-1就退出循環(huán)
while index !=-1:# index不等于-1,說明查找到了子串count += 1# 查找到子串以后,再從子串開始位置+子串長度的新位置處開始切片blessing = blessing[index+len('better'):]# 繼續(xù)查找子串的位置index = blessing.find('better')
else:print(count)
9.3.7 字符串的子串替換
(1) str.replace(old, new)
函數(shù)說明:
將字符串中子串替換為新的字符串,返回一個新的字符串。將參數(shù)old表示的子串替換為新的字符串new。
代碼實例:
Python
# __desc__ = 執(zhí)行replace方法來替換子串blessing = '2020 is getting better and better'
new_blessing = blessing.replace('2020','everything')
# new_blessing指向的值為'everything is getting better and better'
現(xiàn)在通過字符串的find方法,切片操作以及while循環(huán)結(jié)構(gòu)來實現(xiàn)replace方法的功能。
代碼實例:
Python
# __desc__ = 通過find方法以及切片操作來實現(xiàn)replace的功能blessing = '2020 is getting better and enverything in 2020 is getting better -2020'
new_blessing = ''# 變量sub_str表示待替換的子串
sub_str = '2020'# 先通過len方法獲取字符串的長度
length_of_sub = len(sub_str)# 變量dst_str表示替換后的子串
dst_str = 'everything'# right變量用來保存拆分后的右邊部分的子串
right = blessingindex = blessing.find(sub_str)
# 判斷index是否等于-1,如果等于-1就退出循環(huán)
while index !=-1:# 根據(jù)索引的起始位置,先將左邊部分拆分出來left = blessing[:index]# 再根據(jù)索引的起始位置+子串的長度,將右邊部分拆分出來right = blessing[index+length_of_sub:]new_blessing += left + dst_str# 繼續(xù)查找子串的位置,繼續(xù)下一輪的循環(huán)blessing = rightindex = blessing.find(sub_str)else:new_blessing += rightprint(new_blessing)
對于上面的代碼實例,同學(xué)們可以結(jié)合下圖進行理解:
中間部分表示待替換的子串,子串起始位置的左邊部分則為left,子串尾部的右邊部分則為right。
9.3.8 字符串的拆分函數(shù)
(1) str.split(sep=None, maxsplit=-1)
函數(shù)說明:
使用 sep作為分隔字符串,返回由sep字符串分隔后的字符串列表。 如果給出了 maxsplit,則最多進行 maxsplit 次拆分。 如果 maxsplit 未指定或為 -1,則不限制拆分次數(shù)。sep 參數(shù)可能由多個字符組成 (例如 '1@@2@@3'.split('@@') 將返回 ['1', '2', '3'])。
字符串類型執(zhí)行split函數(shù)后的輸出類型為列表類型,同學(xué)們可以在學(xué)完列表類型后,再回過頭來理解這個split函數(shù)。
代碼實例:
Python
# __desc__ = 通過split方法對字符串進行拆分abc = "a$$b$$c"
characters = abc.split("$") # characters為['a', '', 'b', '', 'c']
characters = abc.split("$$") # characters 為['a', 'b', 'c']
9.3.9 字符串的前綴與后綴
(1)str.startswith(prefix) 判斷字符串是否以prefix子串作為前綴,返回值為布爾類型
(2)str.endswith(suffix) 判斷字符串是否以suffix子串作為后綴,返回值為布爾類型
代碼實例:
Python
# __desc__ = 判斷字符串的前綴與后綴blessing = '2020 is getting better and better'
result = blessing.startswith("2020")
# belessing以2020為前綴,返回Trueresult = blessing.endswith("better")
# belessing以better為前綴,返回True
9.3.10 知識要點
(1)字符串類型是一種抽象數(shù)據(jù)類型,抽象數(shù)據(jù)類型定義了數(shù)據(jù)類型的操作方法
(2)len方法是一個全局方法,用來返回復(fù)合數(shù)據(jù)類型的元素數(shù)目。
(3)Python中的函數(shù)名或變量名前帶上一個is的前綴,表示是否的意思
(4)回車符,換行符,制表符,空格符等都是空白字符
9.3.11 最具實力的小班培訓(xùn)
?薯條老師簡介:資深技術(shù)專家,技術(shù)作家,著有《Python零基礎(chǔ)入門指南》,《Java零基礎(chǔ)入門指南》等技術(shù)教程。薯條老師的博客:http://www.chipscoco.com, 系統(tǒng)學(xué)習(xí)后端,爬蟲,數(shù)據(jù)分析,機器學(xué)習(xí)、量化投資。