Python 字串切片

嗨,有志於成為 Python 程式設計師的你!今天,我們將進入 Python 字串切片的精彩世界。身為你親切友善的電腦科學老師,我將引導你一步步走進這個迷人的主題。所以,拿起你最喜歡的飲料,放鬆心情,跟我一起深入探索吧!

Python - Slicing Strings

Python 字串索引

在我們開始切片字串之前,我們需要了解 Python 如何對字串進行索引。將字串視為一系列字符,每個字符都有其獨特的地址或索引。

讓我們從一個簡單的例子開始:

greeting = "Hello, World!"

在這個字串中,每個字符都有自己的位置,從 0 開始。是的,沒錯——在 Python 中,我們從 0 開始計數,而不是 1。這就像一個奇怪的程式設計傳統,但你會習慣的!

以下是索引的樣子:

H  e  l  l  o  ,     W  o  r  l  d  !
0  1  2  3  4  5  6  7  8  9 10 11 12

要存取特定的字符,我們在字串名稱後使用方括號 [],並在內部放入索引:

print(greeting[0])  # 輸出:H
print(greeting[7])  # 輸出:W

Python 字串負索引與正索引

現在,這裡有點意思。Python允許我們使用正索引和負索引。正如我們剛才所見,正索引從字串開頭的 0 開始。另一方面,負索引從字串結尾的 -1 開始,向後遷移。

H  e  l  l  o  ,     W  o  r  l  d  !
0  1  2  3  4  5  6  7  8  9 10 11 12
-13-12-11-10 -9 -8 -7 -6 -5 -4 -3 -2 -1

讓我們試一試:

print(greeting[-1])   # 輸出:!
print(greeting[-6])   # 輸出:W

Python 字串切片

現在我們已經掌握了索引,讓我們來看看切片。切片允許我們提取字串的一部分。切片的基本語法是:

string[start:end]

這將給我們一個從 start 索引開始到 end 索引(不包括)的子字串。這就像切一條麵包——你決定從哪裡開始和結束!

讓我們看一些例子:

print(greeting[0:5])   # 輸出:Hello
print(greeting[7:12])  # 輸出:World

這裡有一個專業建議:如果你省略 start 索引,Python 將假設你想要從開頭開始。如果你省略 end 索引,它會假設你想一直到結尾:

print(greeting[:5])    # 輸出:Hello
print(greeting[7:])    # 輸出:World!

Python 字串切片與負索引

記得我們之前提到的負索引嗎?我們也可以在切片中使用它們!這在你想從字串結尾開始切片時特別有用:

print(greeting[-6:-1])  # 輸出:World
print(greeting[-6:])    # 輸出:World!

字串切片的索引默認值

Python 的切片功能非常寬容。如果你沒有指定開始或結束索引,它會使用一些合理的默認值:

  • 如果省略 start,則默認為字串開頭(索引 0)
  • 如果省略 end,則默認為字串結尾

以下是這些默認值的總結:

切片語法 意義
string[:] 整個字串
string[:end] 從開頭到 end-1
string[start:] start 到結尾
string[start:end] startend-1

讓我們看看這些語法的實際應用:

print(greeting[:])      # 輸出:Hello, World!
print(greeting[:5])     # 輸出:Hello
print(greeting[7:])     # 輸出:World!
print(greeting[2:10])   # 輸出:llo, Wor

字串切片的返回類型

這裡有一個重要的點需要記住:當你切片一個字串時,你會得到另一個字串。這意味著你可以對切片的結果执行進一步的字串操作。

sliced = greeting[7:]
print(type(sliced))  # 輸出:<class 'str'>
print(sliced.upper())  # 輸出:WORLD!

在我們結束之前,讓我們談談字串切片的一個更酷的功能:步長值。你可以為你的切片添加第三個數字,這決定了步長或跨距:

string[start:end:step]

例如:

print(greeting[::2])    # 輸出:Hlo ol!
print(greeting[::-1])   # 輸出:!dlroW ,olleH

第一個例子每個字符取一次,而第二個例子則完全反轉字串!

這就是全部了,各位!你剛剛成為了一名 Python 字串切片忍者。記住,孰能生巧,所以不要猶豫去實驗這些概念。試著切片你的名字,你最喜欢的引言,甚至這篇教學文字!

字串切片就像是 Python 世界中的一把神奇劍。它讓你能夠精準地切割出所需的文本片段,使你的代碼更有效率和優雅。所以,勇敢地去切片那些字串吧!

編程愉快,直到下次,願你的代碼無bug,你的字串切割完美無瑕!

Credits: Image by storyset