25. Python 字符串的切片方法
1. 索引取值知識(shí)回顧
【索引取值語法】
字符串索引取值由3部分構(gòu)成:
- 字符串變量名或者字符串本身。
- 英文中括號(hào)。
- 索引。
【代碼示例】
# 將字符串ABCDEFG賦值給變量string
string = 'ABCDEFG'
# 取字符串的第1個(gè)元素
# 變量名string ;英文中括號(hào);索引為0
print(string [0])
【終端輸出】
A
2. 什么是切片
索引取值可以從字符串中取出1個(gè)字符。
如果要從字符串中取出多個(gè)字符,可以用字符串的切片方法。
【備注】上述圖片來自關(guān)東升的《看漫畫學(xué)Python》。
3. 切片的語法
【語法】
字符串[star:end:step]
字符串[開始字符:結(jié)束字符:步長]
字符串切片取值由4部分構(gòu)成:
-
字符串變量名或者字符串本身。
-
英文中括號(hào)。
-
3個(gè)參數(shù)。
-
3個(gè)參數(shù)之間用英文冒號(hào)分隔。
-
參數(shù)start:表示要取的第1字符的索引(包括該字符),如果不指定,則默認(rèn)為
0
。 -
參數(shù)end:表示要取的最后一個(gè)字符的索引(不包括該字符),如果不指定,則默認(rèn)為字符串的長度。
-
參數(shù)step:表示切片的步長。如果省略,則默認(rèn)為1,當(dāng)省略該步長時(shí),最后一個(gè)冒號(hào)也可以省略。
步長我的理解就是向前或向后走幾步,可以是正整數(shù),也可以是負(fù)整數(shù)。
步長為1,表示向前走1步,那就是依次取值。
步長為2,表示一次性向前走2步,那就是要跳過1個(gè)字符。
步長為-2,表示一次性向后退2步,即從右往左跳過1個(gè)字符。
【重點(diǎn)提示】切片取值時(shí)包括開始字符,不包括結(jié)束字符,簡單記憶為含前不含后
。
4. 切片示例
4.1 步長為1的切片取值
# 將字符串"星河滾燙你是人間理想"賦值給變量a
a = "星河滾燙你是人間理想"
# 從第3個(gè)字符開始,第7個(gè)字符結(jié)束,步長為1
print(a[2:6:1])
【終端輸出】
滾燙你是
【2:6:1代碼解析】
start=2即開始字符的索引為2,索引2對應(yīng)字符串的第3個(gè)元素,即字符滾
。
end=6即結(jié)束字符的索引為6,索引6對應(yīng)字符串的第7個(gè)元素,即字符人
。
step=1即字符串間隔為1,間隔為1表示向前走一步,中間不用跳過字符。
含前不含后
即取前面的字符滾
,不取后面的字符人
。
因此取到的值為滾燙你是
。
【步長為1時(shí)可以省略不寫】
# 將字符串"星河滾燙你是人間理想"賦值給變量a
a = "星河滾燙你是人間理想"
# 從第3個(gè)字符開始,第7個(gè)字符結(jié)束,步長為1
print(a[2:6])
【終端輸出】
滾燙你是
上述代碼省略了步長,因此默認(rèn)步長為1。
【溫馨提示】當(dāng)省略步長時(shí),最后一個(gè)冒號(hào)也可以省略。
4.2 步長為2的切片取值
# 將字符串"星河滾燙你是人間理想"賦值給變量a
a = "星河滾燙你是人間理想"
# 從第3個(gè)字符開始,第7個(gè)字符結(jié)束,步長為2
print(a[2:6:2])
【終端輸出】
滾你
【2:6:2代碼解析】
start=2即開始字符的索引為2,索引2對應(yīng)字符串的第3個(gè)元素,即字符滾
。
end=6即結(jié)束字符的索引為6,索引6對應(yīng)字符串的第7個(gè)元素,即字符人
。
step=2即字符串間隔為2,間隔為2表示一次性往前走2步,取值時(shí)跳過1個(gè)字符。
含前不含后
即取前面的字符滾
,不取后面的字符人
。
因此取到的值為滾你
。
4.3 省略開始索引
# 將字符串"星河滾燙你是人間理想"賦值給變量a
a = "星河滾燙你是人間理想"
# 默認(rèn)索引從0開始
print(a[:6])
【終端輸出】
星河滾燙你是
【:6代碼解析】
冒號(hào)前沒有數(shù)字,表示省略開始索引。
數(shù)字6后面沒有冒號(hào)和數(shù)字,表示省略步長。
start=0,沒有開始索引,索引默認(rèn)從0開始,索引0對應(yīng)的字符串的第1個(gè)字符,即字符星
。
end=6即結(jié)束字符的索引為6,索引6對應(yīng)字符串的第7個(gè)元素,即字符人
。
step=1即字符串間隔為1,間隔為1表示向前走一步,中間不用跳過字符。
含前不含后
即取前面的字符星
,不取后面的字符人
。
因此取到的值為星河滾燙你是
。
4.4 省略結(jié)束索引
# 將字符串"星河滾燙你是人間理想"賦值給變量a
a = "星河滾燙你是人間理想"
# 沒有結(jié)束索引,默認(rèn)到整個(gè)字符串結(jié)尾
print(a[6:])
【終端輸出】
人間理想
【6:代碼解析】
冒號(hào)后面沒有數(shù)字表示省略結(jié)束索引,默認(rèn)步長為1。
start=6即開始字符的索引為6,索引6對應(yīng)字符串的第7個(gè)元素,即字符人
。
end:如果不指定,則默認(rèn)為整個(gè)字符串的長度。
step=1即字符串間隔為1,間隔為1表示向前走一步,中間不用跳過字符。
【溫馨提示】結(jié)束索引默認(rèn)的情況下可以取到字符串的最后一個(gè)字符。
因此取到的值為人間理想
。
4.5 步長為-2
# 將字符串"星河滾燙你是人間理想"賦值給變量a
a = "星河滾燙你是人間理想"
# 從倒數(shù)第2個(gè)字符開始,到正數(shù)第3個(gè)字符結(jié)束;步長為-2
print(a[-2:2:-2])
【終端輸出】
理人你
【-2:2:-2代碼解析】
start=-2即開始字符的索引為-2,索引-2對應(yīng)字符串的倒數(shù)第2個(gè)元素,即字符理
。
end=2即結(jié)束字符的索引為2,索引2對應(yīng)字符串的第3個(gè)元素,即字符滾
。
step=-2即字符串間隔為-2,間隔為-2表示一次性往后退2步,取值時(shí)跳過1個(gè)字符。
步長為負(fù)數(shù)表示從右往左走。
因此取到的值為理人你
。
5. 課堂練習(xí)
【練習(xí)1】
中國居民身份證號(hào)碼中的前2位數(shù)字代表省份。
取出代表省份的前2位數(shù)。
# 將身份證號(hào)碼賦值給變量id_card
id_card = "533001199901013029"
# 方法1:開始索引為0,結(jié)束索引為2,取字符串的第1和第2個(gè)字符
print(id_card[0:2])
# 方法2:開始索引為0可以不寫
print(id_card[:2])
【終端輸出】
53
53
【練習(xí)2】
取出身份證號(hào)碼中的出生年月日。
# 將身份證號(hào)碼賦值給變量id_card
id_card = "533001199901013029"
# 方法1:開始索引為6,結(jié)束索引為14
print(id_card[6:14])
# 方法1:開始索引為-12,結(jié)束索引為-4
print(id_card[-12:-4])
【終端輸出】
19990101
19990101
6. 總結(jié)
【取值技巧】
前加1,后不變
前加1,后不變
前加1,后不變
【例如】
【0:2】表示取第1個(gè)到第2個(gè)字符。
【1:5】表示取第2個(gè)到第5個(gè)字符。文章來源:http://www.zghlxwxcb.cn/news/detail-535791.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-535791.html
到了這里,關(guān)于25. Python 字符串的切片方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!