python中使用[]來截取字元串,語法: 字元串[起始位置:結束位置] 一、起始位置:結束位置 先看幾個例子: s = 'python' print(s) #輸出 python 直接輸出字元串 #從前面截取 print(s[1]) #輸出 y 根據下標取字元 print(s[:]) #輸出 pyt ...
python中使用[]
來截取字元串,語法:
字元串[起始位置:結束位置]
一、起始位置:結束位置
先看幾個例子:
s = 'python'
print(s) #輸出 python 直接輸出字元串
#從前面截取
print(s[1]) #輸出 y 根據下標取字元
print(s[:]) #輸出 python 從頭取到尾
print(s[1:]) #輸出 ython 從下標1開始,取到結尾
print(s[0:2]) #輸出 py 從下標0開始,取到下標2,顧頭不顧尾,所有不包含下標2
print(s[0:100]) #輸出 python 結束位置即使超出字元串實際長度,也不影響正常切片操作
#從後面截取
print(s[-1]) #輸出 n 根據下標取字元
print(s[-1:-3]) #無輸出,切片要遵循從左向右切的規則
print(s[-3:-1]) #輸出 ho 從下標-3開始,取到下標-1,顧頭不顧尾,所有不包含下標-1
這裡有幾項需要註意:
1、根據下標取字元時,下標不能超出索引。
2、顧頭不顧尾:截取字元串時,包含頭部但不包含結尾。
舉例:字元串截取是按下標來截取的,我們都知道,下標是從0開始的,但上面這個例子print(s[0:2])
套入上面的語法,就是從下標0開始,截取到下標為2的字元,因為不含結尾字元,故這裡輸出的是py,而不是pyt。
3、使用切片時,結束位置即使超出字元串實際長度也不影響切片的結果。如print(s[0:100])
輸出結果python。
4、從左向右:必須遵循從左向右切的規則。
舉例:print(s[-1:-3])
從下標-1開始,取到下標-3,從上圖可看出,從-1至-3是從右向左的順序,故什麼都取不出來。print(s[-3:-1])
從左到右截取,輸出ho。
二、步長
表示截取字元串每步的長度,預設為1,不能為0,語法格式:
字元串[起始位置:結束位置:步長]
先看個圖
下麵開始操作:
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#從前面截
print(s[0:10:1]) #輸出ABCDEFGHIJ,從左向右,取出下標0-10的值,因為顧頭不顧尾,最終取出ABCDEFGHIJ
print(s[0:10:2]) #輸出ACEGI,因為這裡的步長是2,每兩位取1個字元,最終取出ACEGI
print(s[0:10:3]) #輸出ADGJ,同理,步長是3,每三位取1個字元,最終取出ADGJ
#從後面截
print(s[-20:-10:1]) #輸出GHIJKLMNOP,步長預設是1,故這裡步長可寫可不寫
print(s[-10:-20:-1]) #輸出QPONMLKJIH,- 表示反方向,即從右向左切,根據倒序下標,-10至-20為QPONMLKJIHG,此時右邊是開頭,左邊是結尾,參考顧頭不顧尾,最終取出QPONMLKJIH
print(s[-10:-20:-2]) #輸出QOMKI,同理,反方向步長為2,每兩位取1個字元,最終取出QOMKI
print(s[-10:-20:-3]) #輸出QNKH