機
器
人
運用 for 迴圈在字串
還記得我們之前所討論過的 for迴圈 嗎?我們平常所熟知的 for 迴圈,是運用在列表或 range()
上,但是你知道嗎?for 迴圈也可以運用在字串上哦!
for … in “”:
讓我們先來複習一下 for 迴圈的概念。假設今天有一個列表叫做 fruits,而列表中有很多關於水果的字串,像是這樣:
fruits = ["apple", "banana", "cherry"]
那麼我們就可以使用 for 迴圈,將列表 fruits 中的所有水果全部印出來:
for fruit in fruits:
print(fruit)
在執行程式之後,我們可以得到像是這樣的結果:
apple
banana
cherry
如果對於目前為止的程式有任何不懂的地方,歡迎先複習一下 for迴圈的概念後再回來閱讀這個章節。之前說過,字串(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()
一次,這樣又該怎麼做呢?回想一下上一個章節中,我們所講到的 字串選取,我們可以使用 [::2]
來完成這個任務:
for letter in abc[::2]:
print(letter)
便會得到:
a
c
e
g
i
for … in range():
有時候,我們會需要用到 range()
來執行 for 迴圈,達成一些本來無法達成的目標。例如我們想要使用 for 迴圈比較兩個字串的內容是否相等,就會需要用到 range()
。
但是在我們真的開始寫程式之前,讓我們先來思考一下要怎麼寫。首先,我們要先使用 if判斷式 比較字串的長度,如果長度不同,字串就不同,而如果長度相同,則需要進一步地檢查是否相同。我們可以使用一個 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("不同")
在執行後我們將會得到:
不同
結論
-
for 迴圈類似一個包含了很多字元的 Python 列表
-
for x in "string":
讓我們從字串頭循環到字串尾 -
善用 Python 的字串選取
[]
來簡化 for 迴圈中的程式 -
有時候我們會需要
range()
來執行稍微複雜的 for 迴圈善用len()
和字串選取[]