「Python」(九)Python中字串的各種騷操作「建議收藏」

您好,我是碼農飛哥,感謝您閱讀本文,歡迎一鍵三連哦

本文將重點介紹Python字串的各種常用方法,字串是實際開發中經常用到的,所有熟練的掌握它的各種用法顯得尤為重要。

乾貨滿滿,建議收藏,歡迎大家一鍵三連哦。 小夥伴們如有問題及需要,歡迎踴躍留言哦~ ~ ~。

@[TOC]

前言

在前面介紹序列那一篇文章已經對字串做了一些簡要的介紹,歡迎小夥伴先看看【Python從入門到精通】(五)Python內建的資料型別-序列和字串,沒有女友,不是保姆,只有拿來就能用的乾貨,這篇文章將對字串的各種常用用法做一個詳細的介紹。歡迎大家意見三聯哦。

字串拼接

透過

+

運算子現有字串

碼農飛哥好,

,要求將字串

碼農飛哥牛逼

拼接到其後面,生成新的字串

碼農飛哥好,碼農飛哥牛逼

舉個例子:

str6 = ‘碼農飛哥好,’# 使用+ 運算子號print(‘+運算子拼接的結果=’,(str6 + ‘碼農飛哥牛逼’))

執行結果是:

+運算子拼接的結果= 碼農飛哥好,碼農飛哥牛逼

字串擷取(字串切片)

切片操作是訪問字串的另一種方式,它可以訪問一定範圍內的元素,透過切片操作,可以生成一個新的字串。切片操作的語法格式是:

sname[start : end : step]

各個引數的含義分別是:

sname: 表示字串的名稱

start:表示切片的開始索引位置(包括該位置),此引數也可以不指定,不指定的情況下會預設為0,也就是從序列的開頭開始切片。

end:表示切片的結束索引位置(不包括該位置),如果不指定,則預設為序列的長度。

step: 表示步長,即在切片過程中,隔幾個儲存位置(包括當前位置)取一次元素,也就是說,如果step的值大於1,比如step為3時,則在切片取元素時,會隔2個位置去取下一個元素。還是舉個栗子說明下吧:

str1=‘好好學習,天天向上’# 取出索引下標為7的值print(str1[7])# 從下標0開始取值,一直取到下標為7(不包括)的索引值print(str1[0:7])# 從下標1開始取值,一直取到下標為4(不包括)的索引值,因為step等於2,所以會隔1個元素取值print(str1[1:4:2])# 取出最後一個元素print(str1[-1])# 從下標-9開始取值,一直取到下標為-2(不包括)的索引值print(str1[-9:-2])

執行的結果是:

向好好學習,天天好習上好好學習,天天

「Python」(九)Python中字串的各種騷操作「建議收藏」

分割字串

Python提供了split()方法用於分割字串,split() 方法可以實現將一個字串按照指定的分隔符切分成多個子串,這些子串會被儲存到列表中(不包含分隔符),作為方法的返回值反饋回來。該方法的基本語法格式如下:

str。split(sep,maxsplit)

此方法中各部分引數的含義分別是:

str: 表示要進行分割的字串

sep: 用於指定分隔符,可以包含多個字元,此引數預設為None,表示所有空字元,包括空格,換行符“\n”、製表符“\t”等

maxsplit: 可選引數,用於指定分割的次數,最後列表中子串的個數最多為maxsplit+1,如果不指定或者指定為-1,則表示分割次數沒有限制。在 split 方法中,如果不指定 sep 引數,那麼也不能指定 maxsplit 引數。舉例說明下:

str = ‘https://feige。blog。csdn。net/’print(‘不指定分割次數’, str。split(‘。’))print(‘指定分割次數為2次’,str。split(‘。’,2))

執行結果是:

不指定分割次數 [‘https://feige’, ‘blog’, ‘csdn’, ‘net/’]指定分割次數為2次 [‘https://feige’, ‘blog’, ‘csdn。net/’]

合併字串

合併字串與split的作用剛剛相反,Python提供了join() 方法來將列表(或元組)中包含的多個字串連線成一個字串。其語法結構是:

newstr = str。join(iterable)

此方法各部分的引數含義是:

newstr: 表示合併後生成的新字串

str: 用於指定合併時的分隔符

iterable: 做合併操作的源字串資料,允許以列表、元組等形式提供。依然是舉例說明:

list = [‘碼農飛哥’, ‘好好學習’, ‘非常棒’]print(‘透過。來拼接’, ‘。’。join(list))print(‘透過-來拼接’, ‘-’。join(list))

執行結果是:

透過。來拼接 碼農飛哥。好好學習。非常棒透過-來拼接 碼農飛哥-好好學習-非常棒

統計字串出現的次數

count()方法用於檢索指定字串在另一字串中出現的次數,如果檢索的字串不存在,則返回0,否則返回出現的次數。其語法結構是:

str。count(sub[,start[,end]])

此方法各部分引數的含義是:

str: 表示原字串

sub: 表示要檢索的字串。

start: 指定檢索的起始位置,也就是從什麼位置開始檢測,如果不指定,預設從頭開始檢索。

end: 指定檢索的終止位置,如果不指定,則表示一直檢索到結尾舉個例子說明:

str = ‘https://feige。blog。csdn。net/’print(‘統計。出現的次數’, str。count(‘。’))print(‘從1位置到倒數第五個位置統計。出現的次數’, str。count(‘。’, 1, -5))

執行結果是:

統計。出現的次數 3從1位置到倒數第6個位置統計。出現的次數 2

檢測字串是否包含某子串

Python提供find方法,用於檢索字串中是否包含目標字串,如果包含,則返回第一次出現該字串的索引,反之,則返回-1。其語法結構是:

str。find(sub[,start[,end]])

此方法各引數的含義是:

str: 表示原字串

sub: 表示要檢索的目標字串

start: 表示開始檢索的起始位置,如果不指定,則預設從頭開始檢索

end: 表示結束檢索的結束位置,如果不指定,則預設一直檢索到結尾。Python還提供了rfind()方法,與find()方法最大的不同在於,rfind()是從字串右邊開始檢索。依然是舉例說明:

str = ‘碼農飛哥’print(‘檢索是否包含字串“飛哥”’, str。find(‘飛哥’))print(“檢索是否包含字串‘你好’”, str。find(‘你好’))

執行結果是:

檢索是否包含字串“飛哥” 2檢索是否包含字串‘你好’ -1

Python還提供了indext()方法檢測字串中是否包含某子串,方法的引數與find方法相同,唯一不同之處在於當指定的字串不存在時,index()方法會丟擲異常。在此就不在贅述了。

字串對齊方法

Python str提供了3種可用來進行文字對齊的方法,分別是ljust(),rjust()和center()方法

ljust()用於向指定字串的右側填充指定字元,從而達到左對齊文字的目的,其語法結構是:

S。ljust(width[, fillchar])

此方法中各個引數的含義是:

S: 表示要進行填充的字串

width: 表示包括S本身長度在內,字串要佔的總長度

fillchar: 作為可選引數,用來指定填充字串時所用的字元,預設情況使用空格。

rjust() 方法是向字串的左側填充指定字元,從而達到右對齊文字的目的。

center()方法用於讓文字居中,而不是左對齊或右對齊舉個例子說明下:

str1 = ‘https://feige。blog。csdn。net/’str2 = ‘https://www。baidu。com/’print(“透過-實現左對齊”, str1。ljust(30, ‘-’))print(“透過-實現左對齊”, str2。ljust(30, ‘-’))print(“透過-實現右對齊”, str1。rjust(30, ‘-’))print(“透過-實現右對齊”, str2。rjust(30, ‘-’))print(“透過-實現居中對齊”, str1。center(30, ‘-’))print(“透過-實現居中對齊”, str2。center(30, ‘-’))

執行結果是:

透過-實現左對齊 https://feige。blog。csdn。net/——透過-實現左對齊 https://www。baidu。com/————透過-實現右對齊 ——https://feige。blog。csdn。net/透過-實現右對齊 ————https://www。baidu。com/透過-實現居中對齊 -https://feige。blog。csdn。net/-透過-實現居中對齊 ——https://www。baidu。com/——

檢索字串是否以指定字串開頭(startswith())

startswith()方法用於檢索字串是否以指定字串開頭,如果是返回True;反之返回False。其語法結構是:

str。startswith(sub[,start[,end]])

此方法各個引數的含義是:

str: 表示原字串

sub: 要檢索的子串‘

start: 指定檢索開始的起始位置索引,如果不指定,則預設從頭開始檢索

end: 指定檢索的結束位置索引,如果不指定,則預設一直檢索到結束。舉個栗子說明下:

str1 = ‘https://feige。blog。csdn。net/’print(‘是否是以https開頭’, str1。startswith(‘https’))print(‘是否是以feige開頭’, str1。startswith(‘feige’, 0, 20))

執行結果是:

是否是以https開頭 True是否是以feige開頭 False

檢索字串是否以指定字串結尾(endswith())

endswith()方法用於檢索字串是否以指定字串結尾,如果是則返回True,反之則返回False。其語法結構是:

str。endswith(sub[,start[,end]])

此方法各個引數的含義與startswith方法相同,再此就不在贅述了。

「Python」(九)Python中字串的各種騷操作「建議收藏」

字串大小寫轉換(3種)函式及用法

Python中提供了3種方法用於字串大小寫轉換

title()方法用於將字串中每個單詞的首字母轉成大寫,其他字母全部轉為小寫。轉換完成後,此方法會返回轉換得到的字串。如果字串中沒有需要被轉換的字元,此方法會將字串原封不動地返回。其語法結構是

str。title()

lower()用於將字串中的所有大寫字母轉換成小寫字母,轉換完成後,該方法會返回新得到的子串。如果字串中原本就都是小寫字母,則該方法會返回原字串。 其語法結構是

str。lower()

upper()用於將字串中的所有小寫字母轉換成大寫字母,如果轉換成功,則返回新字串;反之,則返回原字串。其語法結構是:

str。upper()

。舉例說明下吧:

str = ‘feiGe勇敢飛’print(‘首字母大寫’, str。title())print(‘全部小寫’, str。lower())print(‘全部大寫’, str。upper())

執行結果是:

首字母大寫 Feige勇敢飛全部小寫 feige勇敢飛全部大寫 FEIGE勇敢飛

「Python」(九)Python中字串的各種騷操作「建議收藏」

去除字串中空格(刪除特殊字元)的3種方法

Python中提供了三種方法去除字串中空格(刪除特殊字元)的3種方法,這裡的特殊字元,指的是指表符(\t)、回車符(\r),換行符(\n)等。

strip(): 刪除字串前後(左右兩側)的空格或特殊字元

lstrip():刪除字串前面(左邊)的空格或特殊字元

rstrip():刪除字串後面(右邊)的空格或特殊字元Python的str是不可變的,因此這三個方法只是返回字串前面或者後面空白被刪除之後的副本,並不會改變字串本身舉個例子說明下:

str = ‘\n碼農飛哥勇敢飛 ’print(‘去除前後空格(特殊字串)’, str。strip())print(‘去除左邊空格(特殊字串)’, str。lstrip())print(‘去除右邊空格(特殊字串)’, str。rstrip())

執行結果是:

去除前後空格(特殊字串) 碼農飛哥勇敢飛去除左邊空格(特殊字串) 碼農飛哥勇敢飛 去除右邊空格(特殊字串) 碼農飛哥勇敢飛

encode()和decode()方法:字串編碼轉換

最早的字串編碼是ASCll編碼,它僅僅對10個數字,26個大小寫英文字母以及一些特殊字元進行了編碼,ASCII碼最多隻能表示256個字元,每個字元只需要佔用1個位元組。為了相容各國的文字,相繼出現了GBK,GB2312,UTF-8編碼等,UTF-8是國際通用的編碼格式,它包含了全世界所有國家需要用到的字元,其規定英文字元佔用1個位元組,中文字元佔用3個位元組。

encode() 方法為字串型別(str)提供的方法,用於將 str 型別轉換成 bytes 型別,這個過程也稱為“編碼”。其語法結構是:

str。encode([encoding=“utf-8”][,errors=“strict”])

將bytes型別的二進位制資料轉換成str型別。這個過程也稱為“解碼”,其語法結構是:

bytes。decode([encoding=“utf-8”][,errors=“strict”])

舉個例子說明下:

str = ‘碼農飛哥加油’bytes = str。encode()print(‘編碼’, bytes)print(‘解碼’, bytes。decode())

執行結果是:

編碼 b‘\xe7\xa0\x81\xe5\x86\x9c\xe9\xa3\x9e\xe5\x93\xa5\xe5\x8a\xa0\xe6\xb2\xb9’解碼 碼農飛哥加油

預設的編碼格式是UTF-8,編碼和解碼的格式要相同,不然會解碼失敗。

序列化和反序列化

在實際工作中我們經常要將一個數據物件序列化成字串,也會將一個字串反序列化成一個數據物件。Python自帶的序列化模組是json模組。

json。dumps() 方法是將Python物件轉成字串

json。loads()方法是將已編碼的 JSON 字串解碼為 Python 物件舉個例子說明下:

import jsondict = {‘學號’: 1001, ‘name’: “張三”, ‘score’: [{‘語文’: 90, ‘數學’: 100}]}str = json。dumps(dict,ensure_ascii=False)print(‘序列化成字串’, str, type(str))dict2 = json。loads(str)print(‘反序列化成物件’, dict2, type(dict2))

執行結果是:

序列化成字串 {“name”: “張三”, “score”: [{“數學”: 100, “語文”: 90}], “學號”: 1001} 反序列化成物件 {‘name’: ‘張三’, ‘score’: [{‘數學’: 100, ‘語文’: 90}], ‘學號’: 1001}

總結

本文詳細介紹了Python中字串str的各種常見用法,熟練的掌握str的各種用法是我們的基本功。

我是碼農飛哥,再次感謝您讀完本文

。全網同名【碼農飛哥】。不積跬步,無以至千里,享受分享的快樂

我是碼農飛哥,再次感謝您讀完本文