尚未建立名稱
能量:0
我的帳號中心
問 學Bot 任何問題!
首頁&搜尋
最愛&收藏
所有課程
分享資源
帳號設定
關於學呀
線上募款
Python中字串與for
編輯章節
EDU-MD
Google 教室
加至書籤
# 運用 for 迴圈在字串 還記得我們之前所討論過的 [for迴圈](/view/99027b856f?subj=python) 嗎?我們平常所熟知的 for 迴圈,是運用在列表或 `range()` 上,但是你知道嗎?for 迴圈也可以運用在字串上哦! ## for ... in "": 讓我們先來複習一下 for 迴圈的概念。假設今天有一個列表叫做 fruits,而列表中有很多關於水果的字串,像是這樣: ``` fruits = ["apple", "banana", "cherry"] ``` 那麼我們就可以使用 for 迴圈,將列表 fruits 中的所有水果全部印出來: ``` for fruit in fruits: print(fruit) ``` 在執行程式之後,我們可以得到像是這樣的結果: ``` apple banana cherry ``` 如果對於目前為止的程式有任何不懂的地方,歡迎先複習一下 [for迴圈的概念](/view/99027b856f?subj=python)後再回來閱讀這個章節。之前說過,**字串**(string)**就好像是一個列表**(list),列表中包含了一個個的文字,而 for 迴圈正是使用在列表上的,那麼 for 迴圈究竟能不能直接使用在字串上呢? 答案當然是可以的!我們先看看這個例子: ``` abc = "abcdefghi" ``` 我們先是宣告一個變數 abc,並且賦予其「abcdefghi」這個字串。接著,我們便可以將這個字串「當作一個列表」,直接使用在 for 迴圈中: ``` for letter in abc: print(letter) ``` 將會得到: ``` a b c d e f g h i ``` 是不是很好理解呢?但是,如果我們今天想要每間隔兩個字元,才 `print()` 一次,這樣又該怎麼做呢?回想一下上一個章節中,我們所講到的 [字串選取](/view/84c109b72f?subj=python),我們可以使用 `[::2]` 來完成這個任務: ``` for letter in abc[::2]: print(letter) ``` 便會得到: ``` a c e g i ``` ## for ... in range(): 有時候,我們會需要用到 `range()` 來執行 for 迴圈,達成一些本來無法達成的目標。例如我們想要**使用 for 迴圈**比較兩個字串的內容是否相等,就會需要用到 `range()`。 但是在我們真的開始寫程式之前,讓我們先來思考一下要怎麼寫。首先,我們要先使用 [if判斷式](/view/9c4261eaf9?subj=python) 比較字串的長度,如果長度不同,字串就不同,而如果長度相同,則需要進一步地檢查是否相同。我們可以使用一個 for 迴圈逐一地檢查字串中每個位置的文字是否相同。 ``` string1 = "This" string2 = "That" if len(string1) == len(string2): for i in range(len(string1)): if string1[i] != string2[i]: print("不同") break else: print("相同") else: print("不同") ``` 在執行後我們將會得到: ``` 不同 ``` ## 結論 1. for 迴圈類似一個包含了很多字元的 Python 列表 2. `for x in "string":`讓我們從字串頭循環到字串尾 3. 善用 Python 的字串選取 `[]` 來簡化 for 迴圈中的程式 4. 有時候我們會需要 `range()`來執行稍微複雜的 for 迴圈善用 `len()` 和字串選取 `[]`
複製內容