python字符串截取性質總結

百度看了很多博客,但解釋都很不清粗,直到看了一篇博客,講得很詳細,但個人感覺有些混亂,我看了大半天加上自己試驗纔看懂,所以自己總結一下,大家有興趣可以看一看這篇博客,鏈接:python逆序截取


首先需要了解python的截取格式:str[begin,end,step]






其中begin是起始下標(索引),end是結束的下標,step是步長(間隔)。

用相應的下標即可取到相應的值,如str[1]=1,str[-1]=9;這是截取單個字符

截取多個字符的格式爲str[0:2:1]='01',str[-2,-4,-1]= '87'  ,這裏可能和大家想的不一樣,因爲忽略掉了上文或下文,具體原因在下文

也可按照默認值進行截取:str[:]是str[0,-1,1]的省略形式,這樣便是從第一個字符從左向右截取到最後一位,也就是截取整個字符串,

 str[::-1]是str[-1,0,-1]的省略形式,這樣便是從最後一個字符串從右向左截取到第一位,也就是逆序截取了整個字符串

不過注意:上面雖然是省略形式,但結果是不一樣的,因爲相應位置爲空時纔會被認作默認值,被認作默認值後纔會包含上界或下界,寫成完全形

    式後便會忽略掉上界或下界,具體性質看下文。

字符串截取的工作方式是從begin到end按照step一次次截取,因此step不能爲0。

所以有兩種情況,step>0時,也就是從左往右,自然起始下標不能大於結束下標,這種情況下截取的結果中不包括上界,

不過,當結束下標爲空,也就是爲默認值時,截取的結果中包括上界。如str[7:]=‘789’

但這並不意味手動寫上-1就是和上面一樣的情況,手動寫上的話依然是不包括上屆的。str[7:-1]='78'

      step<0時,也就是從右往左,自然起始下標不能小於借宿下標,這種情況下截取的結果中不包括下界,

其餘的同理。

注意,當step>0時,第一個位置的默認值自動變爲0,第二個位置的默認值自動變爲-1

   當step<0時,第一個位置的默認值自動變爲-1,第二個位置的默認值自動變爲0


大家可以看看代碼和結果

str='0123456789'

print("字符串str爲:"+str+"\n")
print("截取單個字符:str[1]="+str[1]+",str[-1]="+str[-1]+"\n")

print("截取多個字符串:\n")
print("str[0:2:1]="+str[0:2:1]+"\tstr[-2,-4,-1]="+str[-2:-4:-1]+"\n")

print("\n\n其他例子")
print("str[:-1:2]的值爲:"+str[:-1:2])
print("str[:0:-3]的值爲:"+str[:0:-3])

print("str[-2:2:-2]的值爲:"+str[-2:2:-2])

print("str[0:5]的值爲:"+str[0:5])
print("str[-1:5:-1]的值爲:"+str[-1:5:-1])
print("****************************")


print("\n\n按照默認值截取和手寫截取的區別")
print("str[0:-1]的值爲:"+str[0:-1])
print("str[0:]的值爲:"+str[0:])
print("============================\n\n")

print("str[:-1:]的值爲:"+str[:-1:])
print("str[::]的值爲:"+str[::])
print("str[:0:-1]的值爲:"+str[:0:-1])
print("str[::-1]的值爲:"+str[::-1])
print("\n\n============================")
print("str[::-1]的值爲:"+str[::-1])
print("str[:0:-1]的值爲:"+str[:0:-1])
print("============================\n\n")




可能會有錯誤和疏可能漏,歡迎大家指出,我好及時修改,以免誤人子弟。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章