文章目錄
- 一、前言
- 二、字串講解
- 2.1 字串引號
- 2.2 字串列印
- 2.3 字串換行
- 2.4 字串轉義
- 2.5 字串索引
- 2.6 字串切片
- 2.6.1 基礎切片
- 2.6.2 步長切片
- 2.7 字串操作
- 2.7.1 獲取字串長度(len)
- 2.7.2 字串分隔(split)
- 2.7.3 字串拼接(join)
- 2.7.4 字串查找(find / index)
- 2.7.5 字串替換(replace)
- 2.7.6 字串去空格(strip)
- 2.7.7 字串英文轉大寫(upper)
一、前言
??本文章主要講解的是關于Python中字串的操作、常用方式、注意事項等內容,是字串的專題講解,
??大部分內容都是在后續的自動化文章中會使用到的內容,小部分內容了解即可,初識Python的同學建議都了解一下,話不多說,快來一起看看吧~

??
二、字串講解
2.1 字串引號
??Python表示字串非常靈活,有四種引號可以代表字串,單引號'字串',雙引號"字串",三單引號'''字串''',三雙引號"""字串""",表示的結果型別都是字串
a = '123'
b = "123"
c = '''123'''
d = """123"""
print(type(a))
print(type(b))
print(type(c))
print(type(d))

??
2.2 字串列印
??在Python中我們知道要想表示一個字串必須要加上4種引號的其中一種以表示這是一個字串,但在字串的列印時,字串的雙引號不會展示在螢屏列印上,
??之前說三引號是多行注釋,這里沒有被判定為注釋的直接原因是因為它是賦值給了一個變數,而這個變數代表這個字串,故此不屬于注釋,如果沒有變數保存,則會認為是注釋內容:
a = '123'
b = "123"
c = '''123'''
d = """123"""
print(a)
print(b)
print(c)
print(d)

??
2.3 字串換行
??字串的換行有兩種,一種是增加反斜杠\,但這種方式并不是真正的換行,它代表拼接,表面上是換行了,但實際上是接著第一行的內容繼續寫的,第二種是真正意義的換行,這種換行是需要使用三引號"""""",''''''以表示這是多行資料,這樣就可以實作真正的字串換行,換行會保留對應格式:
# 這是表面換行,通常會在一行里寫不下的情況下加反斜杠換行,也可以在末尾的雙引號前按回車鍵來實作換行
str1 = "我愛" \
"CSDN" \
"," \
"你呢?"
print(str1)

# 這是真正意義上的換行,并且換行后會保留你的格式,例如所存在的空格等
str1 = """我愛
你
親愛的
姑娘"""
print(str1)

??我們也可以使用單引號,借用換行符\n來進行換行,如果你想按空格,不妨嘗試一下水平制表符\t,效果和3個空格相同:
# \n在Python中是換行符,起到換行作用
# \t在Python中是水平制表符,相當于Tab的一次間距(3個空格)
str1 = '我愛你\n親愛的姑娘'
str2 = '我愛你\t親愛的姑娘'
str3 = '我愛你 親愛的姑娘'
print(str1)
print(str2)
print(str3)

??
2.4 字串轉義
??有時候我們是真的想輸出一個反斜杠加一個n,如果不進行處理,Python會默認認為是換行符,當做換行處理,如果我們想保留我們輸入的\n就需要進行轉義處理,轉義處理有兩種方式,一種在反斜杠前在加一個反斜杠,另外一種是在開頭雙引號前加一個r來做轉義處理:
??這種場景一般在寫組態檔時會使用到一些路徑相關的配置,大概率是需要進行轉義處理的,否則Python無法正確識別(筆者建議只要是系統路徑相關的,直接進行轉義)
str1 = '我愛你\\n親愛的姑娘'
str2 = r'我愛你\n親愛的姑娘'
print(str1)
print(str2)

??
2.5 字串索引
??字串的索引可以理解為資料庫資料的ID、可以理解為書籍目錄頁對應內容的頁數,索引的作用是方便精準定位到某個具體的位置,字串的索引則是方便我們在使用時便捷的查找到我們需要的資料,取某一個字符,
??字串的索引下標是從0開始的,不是從1開始
# 心代表下標0,里代表下標1,話代表下標2,故此如果我們要找到"心",那么就是索引0
# 索引格式:變數[索引下標]
str_num1 = "心里話:我真的不知道你是否愛我,你應該不愛我吧..."
print(str_num1[0])

??標點符號也擁有索引下標
# 標點符號也擁有下標
str_num1 = "心里話:我真的不知道你是否愛我,你應該不愛我吧..."
print(str_num1[3])

??我們也可以從右側開始數,從-1開始,-1則代表倒數第一,當有幾十個,上百個時,正向數到最后一個會很麻煩,那么可以直接使用-1來進行代替
# 可以一行列印進行拼接,最后的資料使用-1代替,前置位-2,-3,以此類推..
str_num1 = "心里話:我真的不知道你是否愛我,你應該不愛我吧..."
print(str_num1[4]+str_num1[13]+str_num1[16]+str_num1[-1]+str_num1[-2])

??字串索引超出范圍會有IndexError的報錯,意思是字串索引超出范圍,當出現這個報錯時,我們需要根據報錯提供的行數來確認是否超出了索引范圍來進行解決
# 字串索引超出范圍會有IndexError的報錯,意思是字串索引超出范圍
# 當出現這個報錯時,我們需要根據報錯提供的行數來確認是否超出了索引范圍來進行解決
str_num1 = "心里話:我真的不知道你是否愛我,你應該不愛我吧..."
print(str_num1[100])

??
2.6 字串切片
2.6.1 基礎切片
??字串的切片是用來獲取字串的某個子串字符,不同于索引的是,切片不僅可以獲取一個,還可以獲取多個,索引下標默認從0開始,
??這里還需要注意的是,切片的結尾并不會包括在內,例如end選擇了2,但取值結果并不會包括索引為2的子串內容:
# 切片的格式:[start:end]
# end索引為2,包括了"認",但并不會取這個內容,只會去它前面的資料
str1 = "女生認為擁有了你就擁有了全世界,男生認為擁有了全世界才能夠保護你"
print(str1[0:2])

??字串切片的末尾end取值與索引不同,索引是不能夠超出索引范圍的,切片end末尾的數值可以不受限制且超出范圍后不會報錯:
# 切片的格式:[start:end]
str1 = "女生認為擁有了你就擁有了全世界,男生認為擁有了全世界才能夠保護你"
print(str1[0:1314520])

??通常而言,如果我們要切片取整個字串的資料,可以忽略end的輸入,這樣默認代表取所有內容,既美觀又便捷,不僅僅可以忽略end的輸入,也可以忽略start的輸入,甚至兩個都忽略:
# 切片的格式:[start:end]
str1 = "女生認為擁有了你就擁有了全世界,男生認為擁有了全世界才能夠保護你"
print(str1[0:])
print(str1[:]) # 在一個切片中,如果開頭start與結尾end都進行了省略,代表復制一個字串
print(str1[:16])

??
2.6.2 步長切片
??除上述的切片方式以外,還有一種方式是步長切片,步長相當于間隔數,我們可以在整一段字串中,設定好步長,然后進行子串資料的跳躍選取,
??基礎的切片本身也擁有步長,通常我們需要使用step步長時,基礎設定是2或以上,無論設定的步長是多少,第一個取值子串的資料是不會受到步長影響的:
# 步長切片的格式:[start:end:step]
str1 = "123456789"
print(str1[0:100:2])

??在步長切片的格式下,我們也可以進行start、end等內容的省略,如果步長省略則意味著默認為1
# 步長切片的格式:[start:end:step]
str1 = "123456789"
print(str1[0:100:])

# 步長切片的格式:[start:end:step]
str1 = "123456789"
print(str1[1::2])

??值得一提的是,如果步長為0,則會報ValueError的錯誤,在Python中是不合法的
# 步長切片的格式:[start:end:step]
str1 = "123456789"
print(str1[1:100:0])

??在步長切片的情況下,如果步長超出了字串的子串資料,也不會出現報錯,因為沒有資料,只會取不到,僅此而已,步長的場景使用較少,一般而言是用來取奇數、偶數位置等才會使用到:
# 步長切片的格式:[start:end:step]
str1 = "123456789"
print(str1[1:100:100])

??步長切片的步長setp也可以為負數,在步長為負數的情況下,子串資料取值則是以倒序的方式獲取:
# 步長切片的格式:[start:end:step]
str1 = "你是愛的中心"
print(str1[::-1])

??
2.7 字串操作
??字串的操作有很多,下列列舉的是必須要掌握的基本操作或者是后續在自動化測驗的章節、實戰中會使用到的操作,
2.7.1 獲取字串長度(len)
??我們想獲取一個字串長度時可以使用len()來進行獲取:
# 獲取字串長度格式:len(變數)
str1 = "你是愛的中心"
print(len(str1))

2.7.2 字串分隔(split)
??如果我們想進行字串的分隔可以使用split()來進行分隔,分隔是以某一個標記的特定分隔符來進行分隔的,分隔符在字串中體現,分隔符的左右引號可以是單引號也可以是雙引號,最終的列印輸出結果為單引號輸出,分隔的資料最侄訓存盤至串列當中并以串列方式呈現:
# 分隔用法格式:變數.split("分隔符")
str1 = "我們_一定_可以_在一起"
print(str1.split("_"))

2.7.3 字串拼接(join)
??如果我們想進行字串的拼接可以使用join,把一個串列拼接成一個字串,拼接仍然會使用到符號,這符號是拼接符,期望拼接后以什么符號進行拼接,符號可以自行選擇不固定,格式與split略有不同:
# 拼接用法格式:"拼接符".join(變數名)
str1 = ["我們", "一定", "可以", "在一起"]
print("_".join(str1))

2.7.4 字串查找(find / index)
??如果我們想在一個字串里找到某一個子串資料,那么可以使用find進行查找,find如果查找到對應的資料,回傳的則是字串子串資料的對應索引位置:
# find用法格式:變數.find("查找內容")
str1 = """
我生喜際招提客
永巷春深簾幕幽
遠翠如凝妓女愁
愛親念重受身輕
你若住兮我即行
寶帶金貂侯第客
貝葉靈文滿寶函
"""
print(str1.find("提客"))

??find查找的內容必須完全對應,也不能跳躍查找,否則會認為是沒有對應資料,find如果找不到對應資料,結果會列印-1以告知字串里沒有對應的子串資料:
# find用法格式:變數.find("查找內容")
str1 = """
我生喜際招提客
永巷春深簾幕幽
遠翠如凝妓女愁
愛親念重受身輕
你若住兮我即行
寶帶金貂侯第客
貝葉靈文滿寶函
"""
print(str1.find("寶貝"))

??index的語法格式以及作用于find相同,不同的是,如果find找不到會回傳-1,但index找不到會報錯終止程式運行:
# index用法格式:變數.index("查找內容")
str1 = """
我生喜際招提客
永巷春深簾幕幽
遠翠如凝妓女愁
愛親念重受身輕
你若住兮我即行
寶帶金貂侯第客
貝葉靈文滿寶函
"""
print(str1.index("提客"))

# index用法格式:變數.index("查找內容")
str1 = """
我生喜際招提客
永巷春深簾幕幽
遠翠如凝妓女愁
愛親念重受身輕
你若住兮我即行
寶帶金貂侯第客
貝葉靈文滿寶函
"""
print(str1.index("寶貝"))

??當字串中有重復內容時,我們進行查找就只會找到第一個:
str1 = "11235"
print(str1.index("1"))
print(str1.find("1"))

2.7.5 字串替換(replace)
??如果想替換字串中的某個內容,可以使用replace進行替換,如果同一個字眼出現多次,那么也會將多次出現的字眼一同替換:
# replace用法:變數.replace("被替換內容", "替換內容")
str1 = "左手_右手"
print(str1.replace("左手", "右手"))

# replace用法:變數.replace("被替換內容", "替換內容")
str1 = "左手_右手_左手_右手"
print(str1.replace("左手", "右手"))

2.7.6 字串去空格(strip)
??如果想去除字串左右兩側的空格,可使用strip,中間的空格無法去除:
# strip用法:變數.strip()
str1 = " 左手_右手_左手_右手 "
print(str1.strip())

2.7.7 字串英文轉大寫(upper)
??英文如果都是小寫,我們想轉成大寫可以使用upper來進行轉換:
# upper用法:變數.upper()
str1 = "hello,world!"
print(str1.upper())

??
??
??好啦~以上就是本次文章分享的全部內容啦,你學會了嗎?希望能給大家帶來幫助哦!
??優質文章推薦1:【Python自動化測驗1】遇見Python之美
??優質文章推薦2:【Python自動化測驗2】Python安裝配置及PyCharm基本使用
??優質文章推薦3:【Python自動化測驗3】初識資料型別與基礎語法
??優質文章推薦4: 你真的了解介面測驗嗎?
??優質文章推薦5: Postman介面測驗工具實戰演練集
????
??

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/403970.html
標籤:python
