顯示具有 List串列 標籤的文章。 顯示所有文章
顯示具有 List串列 標籤的文章。 顯示所有文章

Python中級學堂:控制結構篇10.for迴圈


Python中級學堂:控制結構篇10.for迴圈

Python基礎都學會了嗎?恭喜你朝專業工程師又進一步了!本篇是進階教學:控制結構篇10.for迴圈


看這一篇之前,建議先看這一篇「Python控制結構5.while 迴圈」複習 while 迴圈。
Python 中,若我們要多次重複執行一個指令,我們可以使用迴圈(loops)。迴圈中的程式碼會用以下的方式執行指令:1、按照所指定的次數,重複執行;2、重複執行,直到特定的條件成立時結束;3、針對某一集合(例如:Python list串列之中的物件)中的所有項目,都各執行一次。

for 迴圈 vs. while 迴圈

先前在Python教學中我們曾經介紹過的 while 迴圈用法與 if 條件判斷式相似,只要給予的條件成立(即為「True(真)」),它就會執行。不同的是執行次數,if 只執行一次;while 迴圈則輪迴執行無限多次 (除非有設定讓迴圈結束的條件且條件成立)。
while 迴圈只要「沒有」另外設定「迴圈結束的條件(如:if 、break)」,迴圈就會無限的循環。這次我們要介紹的 for 迴圈則是在一行內就 自帶計數功能的迴圈,可以將重複循環控制在固定的數量內。
以下為一個 while 迴圈的範例,起始值為「count=0」、調整值為「count = count + 1」、讓迴圈結束的條件為「<= 5」,如下所示:
count=0 
while count <= 5: 
    print(count)
    count = count + 1   
上述範例結果為:
0
1
2
3
4
5
上個範例,若我們把第二行的「count <= 5」抽掉,換成一個「合乎常理」的條件(例如 count = 0),這個 loop 就會「0,1,2,3,4,5,6,7⋯⋯」永無止盡的重複「+1」的動作。同個範例,若使用 for 迴圈,則在第一行就可以搭配 range數列,定義「終止值」。如下例:
for count in range(0,6,1):
  print(count)
上述例子結果為:
0
1
2
3
4
5
有沒有發現,原本使用 while loop 需要 4 行的 coding,使用 for loop 只要兩行?
因為 while 迴圈把三大控制條件:初始值、讓迴圈結束的條件、更新值(又稱為調整值)分散在各行來敘述,for 迴圈則使用 range數列 將這三大控制條件放在同一行中展現。上述 range 的寫法為「range(起始值為0,迴圈在6之前就結束,調整值為+1),一行立刻應用range數列來訂定起始值、結束條件與調整方法,是不是很精簡方便的?Python 的 range 函數的詳細用法請見這一篇。
下面還有另外一個例子,為 for 迴圈應用 Python List串列函數的,將串列表中的所有物件都執行一次的範例:
the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
for bandname in the_BIG4:
    print(bandname+" is a thrash metal band.")
上述例子結果為:
Megadeth is a thrash metal band.
Metallica is a thrash metal band.
Anthrax is a thrash metal band.
Slayer is a thrash metal band.
這種針對某一集合中的所有項目(例如:List串列之中的所有物件),都各執行一次例子,若用 while 迴圈來表示則需要:1、套用到 counter 「計數器」變數(計數器的數值是跟著索引跑的,所以設定起始值為「counter = 0」。串列的索引編號均是從零開始,詳細請看這篇)。;2、調整值為多加一次,故把計數器變數設為「counter = counter + 1」;3、讓迴圈結束的條件為當計數器把串列的東西全都執行結束時,因此把計數器的值設定為「最大的索引數」, 變成:
the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
counter = 0
max_index = len(the_BIG4)-1

while counter <= max_index:
   bandname = the_BIG4[counter]
   print(bandname + " is a thrash metal band.")
   counter = counter + 1 
比起來,for 迴圈自帶計數的特性,真的簡化了 Python 程式碼的寫法。所以遇到有次數限制的迴圈時,不妨使用 for 迴圈吧!


參考連結:

Python進階教學:控制結構篇8.函數

Python進階教學:控制結構篇9.數列生成

Python中級學堂:控制結構篇11.實作簡單的計算機

AI將衝擊你我的未來?Python竟成人人要會的技能?(上)

AI將衝擊你我的未來?Python竟成人人要會的技能?(中)

AI將衝擊你我的未來?Python竟成人人要會的技能?(下)

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

Python中級學堂:控制結構篇8.函數



Python中級學堂:控制結構篇8.函數

Python基礎都學會了嗎?恭喜你朝專業工程師又進一步了!本篇是進階教學:控制結構篇8.函數


從 Python教學 的 List 串列【基本的List串列說明,請參考:Python控制結構6.List串列】中我們學習到,List 串列不僅可以隨意替換、索引 List 中的物件【請參考:Python控制結構7.List串列與其他運算子的應用】我們可以使用「append」來增加串列中的物件。如下例所示:

GearList = ["BCD", "調節器", "蛙鞋"]
GearList.append("潛水面罩")
print(GearList)
上述範例結果為:
['BCD', '調節器', '蛙鞋', '潛水面罩']
我們可以使用「len」來計算 List 串列中有多少物件:
GearList = ["BCD", "調節器", "蛙鞋"]
print(len(GearList))
上述例子結果為「3」。
「len」可與「append」合用,Python 語法範例如下:
GearList = ["BCD", "調節器", "蛙鞋"]
GearList.append("潛水面罩")
print(len(GearList))
上述例子結果為「4」。
剛剛提到,在 Python 中我們可以使用「append」來增加串列中的物件。但是「append」都是把物件增加在串列的最後面。若希望物件增加到串列的中間,就用「insert」:
GearList = ["BCD", "調節器", "蛙鞋"]
index=1
GearList.insert(index,"潛水面罩")
print(GearList)
結果為:
['BCD', '潛水面罩', '調節器', '蛙鞋']
以上範例,我們在 List 串列那一行的後方,加入了「index=1」,指定索引號碼為「1」。所以,"潛水面罩"這物件就被安插在索引序號為「1」的位置。
Python 的 List 串列用法可說是多樣化。我們甚至可以使用「index」來查看指定物件的索引序號如下:
GearList = ["BCD", "調節器", "蛙鞋"]
index=2
GearList.insert(index,"潛水面罩")
print(GearList.index("BCD"))
print(GearList.index("蛙鞋"))
print(GearList.index("調節器"))
print(GearList.index("潛水面罩"))
結果為:
0
3
1
2
List串列尚可搭配 for 迴圈,讓 List串列中的所有物件都可以被 Python 程式執行!【請參考:Python控制結構10.for迴圈



參考連結:

Python中級學堂:控制結構篇6.串列

Python進階教學:控制結構篇7.串列與其他運算子的應用

Python進階教學:控制結構篇9.數列生成

AI將衝擊你我的未來?Python竟成人人要會的技能?(上)

AI將衝擊你我的未來?Python竟成人人要會的技能?(中)

AI將衝擊你我的未來?Python竟成人人要會的技能?(下)

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

Python中級學堂:控制結構篇7.串列與其他運算子的應用


Python中級學堂:控制結構篇7.串列與其他運算子的應用

Python基礎都學會了嗎?恭喜你朝專業工程師又進一步了!本篇是進階教學:控制結構篇7.串列與其他運算子的運用

List 串列-重新定義物件

在「Python控制結構6.List串列」中,我們了解了基本的 List串列索引的概念。在 Python教學 中我們可以知道,同一 List 串列內的任一物件(元素),不是固定的,物件是可以隨時替換的,如下:

GearList = ["BCD", "調節器", "蛙鞋", "潛水面罩", "氣瓶", "潛水衣"]
GearList[5] = "Dry Suit"
print(GearList)
上述範例結果為:
['BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', 'Dry Suit']
是否注意到最後一個物件(索引編號:5)從 "潛水衣" 變成了 "Dry Suit"?

List 串列-print時增加、複製物件

Python 中,也可以使用運算子「+」、「*」,來使 List 串列被輸出時,可以增加、複製物件。如下面例子所示:
GearList = ["BCD", "調節器", "蛙鞋", "潛水面罩", "氣瓶", "潛水衣"]
print(GearList+["潛水電腦"])
print(GearList*2)
結果如下(以一行指令、一行輸出結果的方式表示):
>>> print(GearList+["潛水電腦"])
['BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣', '潛水電腦']

>>> print(GearList*2)
['BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣', 'BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣']
以上範例的結果,第一個程式碼在輸出時增加了"潛水電腦";第二個輸出的結果為原有程式碼的兩倍。

檢查 List 串列表中的物件

我們可以在 print 時,運用「in」運算子來檢查指定的物件(元素)是否在串列中。若有,則回傳為 True;反之為 False。寫法為如下方範例所示:
Fruits = ["芭樂", "榴蓮", "柳丁", "草莓"]
print("榴蓮" in Fruits)
print("草莓" in Fruits)
print("牛肉" in Fruits)
結果為:
True
True
False
以上Python範例,還可以搭配「not」運算子【not 運算子請參考:Python控制結構3.布林邏輯:and,or,not】來檢查指定的物件(元素)是否「沒有」在串列中。若沒有,則回傳為 True;有的話則為 False。
Fruits = ["芭樂", "榴蓮", "柳丁", "草莓"]
print(not "榴蓮" in Fruits)
print("榴蓮" not in Fruits)
print(not "草莓" in Fruits)
print("牛肉" not in Fruits)
結果為:
False
False
False
True
除了上述介紹的 List 串列索引功能之外,你也可以活用各種函數來增加索引中的物件或是計算索引中的物件數量【請參考:Python控制結構8.List-append,insert,index,len函數】。
List串列尚可搭配 for 迴圈,讓 List串列中的所有物件都可以被 Python 程式執行!【請參考:Python控制結構10.for迴圈


參考連結:

Python中級學堂:控制結構篇6.串列

Python進階教學:控制結構篇8.函數

Python進階教學:控制結構篇9.數列生成

AI將衝擊你我的未來?Python竟成人人要會的技能?(上)

AI將衝擊你我的未來?Python竟成人人要會的技能?(中)

AI將衝擊你我的未來?Python竟成人人要會的技能?(下)

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

Python中級學堂:控制結構篇6.串列


Python中級學堂:控制結構篇6.串列

Python基礎都學會了嗎?恭喜你朝專業工程師又進一步了!本篇是進階教學:控制結構篇:6.串列

List 串列

List 串列 是 Python教學中用來表示資料的方法(資料結構),有順序地將一系列的物件集合在一起,並具有索引特性。

List 串列的語法,是用「[]」包覆一系列的物件,每個物件(元素)均使用逗號「,」區隔,如以下例子所示:
GearList = ["Scuba BCD", "Scuba Diving Regulator", "Diving Fins", "Diving Mask", "Scuba Tank", "Wet Suit"]
print(GearList[0])
print(GearList[1])
print(GearList[2])
print(GearList[3])
print(GearList[4])
print(GearList[5])
上述範例結果為:
Scuba BCD
Scuba Diving Regulator
Diving Fins
Diving Mask
Scuba Tank
Wet Suit
注意:List 串列的語法中,第一個物件(元素)的索引號為 0,而不是 1。
我們還可以創造建立沒有物件的 List 串列,如下所示:
empty_list = []
print(empty_list)
結果如下:
[]
List 串列中所包含的元素種類很多,有字串(string)、整數與浮點數、變數等,甚至在包含另一個 List 串列(也是以「[]」包覆)。一個 Lise 串列可以囊括不同種類的物件,如下所示:
變數 = 3
一堆雜物 = ["string", 0, [1, 2, 變數], 4.56]
print(一堆雜物[1])
print(一堆雜物[2])
print(一堆雜物[2][2])
以上範例結果如下所示:
0
[1, 2, 變數]
3
上述的 「print(一堆雜物[2][2])」意思為輸出列表中索引「2」的物件列表中的索引「2」物件,該物件為「變數」,而變數等於三,故 print(一堆雜物[2][2]) 的結果為「3」。

字串 (strings) 類型也可以逐字被索引

Python 字串類型的物件,也可以像 List 串列一樣,逐字被索引。我們可以輸入 print(str[n]) 指令,讓它抓出字串元素的第 n+1 個字。【關於字串,請參考:Python基本概念第四課-Strings字串

在字串中,第一個字母的索引號也是 0,而不是 1。
str = "潛水用具包含 BCD、水肺等."
print(str[0])
print(str[1])
print(str[6])
print(str[9])
print(str[10])
print(str[14])
結果如下(以一行指令、一行輸出結果的方式表示):
>>> print(str[0])
潛
>>> print(str[1])
水
>>> print(str[6])
 
>>> print(str[9])
D
>>> print(str[10])
、
>>> print(str[14])
.
由此可見,無論是全形、半形、中文、英文、空格、標點符號等等,全部在 Python 程式裡面都可以被索引出來!
學會了 List 串列,可以應用的地方非常廣。無論是本章介紹的基本索引功能,也有進階的索引用法【請參考:Python控制結構7.List串列與其他運算子的應用】,除此之外,你也可以活用各種函數來增加索引中的物件或是計算索引中的物件數量【請參考:Python控制結構8.List-append,insert,index,len函數
List串列尚可搭配 for 迴圈,讓 List串列中的所有物件都可以被 Python 程式執行!【請參考:Python控制結構10.for迴圈



參考連結:

Python中級學堂:控制結構篇4.運算子優先順序一覽

Python進階教學:控制結構篇5.while迴圈

Python進階教學:控制結構篇7.串列與其他運算子的應用

點名即將消失的五大程式語言,兇手竟然是Python!?(上)

點名即將消失的五大程式語言,兇手竟然是Python!?(下)

Python該怎麼念?工程師常用十大英文單字,你念對了嗎?

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

全球首屆元宇宙時裝周,複刻20年前的失敗?

全球首屆元宇宙時裝周, 遇到瓶頸 複刻20年前的失敗? 目錄 元宇宙時裝周參與盛況 叫好不叫座?新興技術的行銷瓶頸 由虛擬實境平台 Decentraland 所舉辦的「元宇宙時裝週」(Metaverse Fashion Week...