《從零開始的Python筆記》Day#2:流程控制與迴圈

更新於 發佈於 閱讀時間約 11 分鐘
raw-image
在程式設計領域中,「流程控制與迴圈」扮演著至關重要的角色。其主要用途是讓程式能夠根據特定的條件進行決策,並根據不同情境執行相應的操作。這不僅提升了程式的靈活性,還讓程式具備自動化執行重複性任務的能力。

以下是「流程控制與迴圈」在Python中的重要性:

  1. 決策能力與條件判斷
    流程控制(如if-elif-else結構)使程式具備了根據不同條件執行不同操作的能力,實現條件分支處理。
  2. 提高程式的自動化能力
    迴圈結構(如for和while)讓程式可以在特定條件下,自動執行重複性的任務。迴圈可以極大地減少冗長的程式碼,提升效率。
  3. 有效管理大規模數據
    在處理大數據量時,無論是數據分析、文件處理、網頁爬蟲還是數值運算,迴圈扮演了重要角色。它讓程式能夠快速度遍歷大量項目、執行批次操作並記錄結果,這是手動操作難以達成的。

🔄流程控制

條件判斷

條件判斷語句允許程式執行不同的代碼,依條件結果決定程式執行的邏輯。

  • if:用於判斷條件是否成立,若成立即執行對應程式碼。
  • elif:用於指定額外條件,當上方的 if 條件不成立時檢查其他可能性。
  • else:當所有條件皆不成立時執行。
age = 18

if age < 18:
print("未成年")
elif age == 18:
print("剛滿 18 歲,歡迎成為成人")
else:
print("成年")

# 輸出
剛滿 18 歲,歡迎成為成人

巢狀條件控制(Nested Conditions)

巢狀條件允許在 if、elif 或 else 區塊內再進行條件判斷,用於處理複雜的邏輯場景。

score = 85

if score >= 60:
print("及格")
if score >= 85:
print("表現卓越!")
else:
print("表現普通")
else:
print("不及格")

# 輸出
及格表現卓越!

🛞 迴圈

for 迴圈與 range()

  • for : 用於遍歷固定區間的數值或可迭代對象(例如列表、字串)。
  • range() : 生成一系列的數字,通常搭配 for 迴圈使用。
# 遍歷 0 到 4
for i in range(5): # 預設從 0 開始,間隔為 1
print(f"數字:{i}")

# 自訂範圍與步長
for j in range(1, 10, 2): # 從 1 開始,遞增步長為 2
print(f"奇數:{j}")

# 輸出
數字:0
數字:1
數字:2
數字:3
數字:4

奇數:1
奇數:3
奇數:5
奇數:7
奇數:9

range參數說明

raw-image

while 迴圈

根據條件是否成立來執行迴圈內的程式,條件成立則會持續執行,直到條件不成立時停止迴圈。

count = 0
while count < 5:
print(f"目前計數:{count}")
count += 1 # 每次迴圈,計數加 1

# 輸出
目前計數:0
目前計數:1
目前計數:2
目前計數:3
目前計數:4

💡特別注意:要設定迴圈跳脫機制,否則會不停地執行直到當機

迴圈控制關鍵字:break、continue、pass

  • break:強制結束迴圈執行 
for i in range(10):
if i == 5: # 遇到條件 i == 5 時終止迴圈
break
print(f"迴圈值:{i}")

# 輸出
迴圈值:0
迴圈值:1
迴圈值:2
迴圈值:3
迴圈值:4
  • continue:跳過當前迴圈的剩餘程式碼,直接進入下一次迴圈
for i in range(5):
if i == 2: # 跳過 i == 2 的情況
continue
print(f"迴圈值:{i}")

# 輸出
迴圈值:0
迴圈值:1
迴圈值:3
迴圈值:4
  • pass:作為佔位符,不執行任何動作,通常用於填充代碼結構
for i in range(3):
if i == 1:
pass # 此處不執行任何操作
print(f"迴圈值:{i}")

# 輸出
迴圈值:0
迴圈值:1
迴圈值:2

迴圈實作1:九九乘法表

九九乘法表是每個人在學程式語言時會碰到的基礎練習,重點在於如何使用雙層迴圈。除了使用for之外,大家也可以試著使用while來完成。



for i in range(1, 10): # 外層迴圈表示第一個數字
for j in range(1, 10): # 內層迴圈表示第二個數字
print(f"{i} x {j} = {i \* j}", end="\t") # 使用 \t 產生水平對齊
print() # 每次內層迴圈結束後換行

# 輸出

1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36 6 x 7 = 42 6 x 8 = 48 6 x 9 = 54
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 8 x 9 = 72
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 =

迴圈實作2:金字塔

金字塔系列題目是迴圈教學裡面經典中的經典,重點在於思考空格與”*”的數量和排列。除了下列示範的正金字塔以外,還有其他變形如倒金字塔、雙層金字塔等進階挑戰。

# 金字塔高度
height = 5

# 使用 for 迴圈輸出金字塔
for i in range(1, height + 1): # 外層迴圈決定金字塔的層數
# 計算每層的空格數量(用於置中顯示)
spaces = height - i # 計算每層的 `*` 數量
stars = 2 * i - 1
# 印出該層的空格與星星
print(" "*spaces + "*"* stars)

# 輸出
*
***
*****
*******
*********

迴圈實作3:菱形金字塔

菱形金字塔是由兩個金字塔組成(上半部為正金字塔,下半部為倒金字塔),這是金字塔系列中的進階題目。重點在於將上下半部金字塔分開思考,最後再組合。

# 金字塔高度
levels = 5

# 上半部(包含中間層)
for i in range(1, levels + 1):
spaces = levels - i # 每層對應的前置空格數
stars = i * 2 - 1 # 每層對應的星號數
print(" " * spaces + "*" * stars)

# 下半部(不包含中間層,反向打印)
for i in range(levels - 1, 0, -1): # 從 levels-1 倒數到 1
spaces = levels - i stars = i * 2 - 1
print(" "* spaces + "*"* stars)

# 輸出

*
***
*****
*******
*********
*******
*****
***
*
留言
avatar-img
留言分享你的想法!
avatar-img
Ethan的AI學習筆記
1會員
20內容數
我是一個不務正業的資料科學家,從零開始學習的路途上跌跌撞撞,跌過許多坑,也撞過許多牆... 當有人迷失方向時,希望這些筆記可以成為你的指南針。
你可能也想看
Thumbnail
本文介紹了Python中的流程控制,包括if, elif, else語句,三元運算子,for和while迴圈,以及控制迴圈語句如break、continue和pass。透過範例程式碼,說明了如何使用這些語句和結構進行條件判斷,迴圈遍歷和控制程式流程。
Thumbnail
本文介紹了Python中的流程控制,包括if, elif, else語句,三元運算子,for和while迴圈,以及控制迴圈語句如break、continue和pass。透過範例程式碼,說明了如何使用這些語句和結構進行條件判斷,迴圈遍歷和控制程式流程。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
當我們在做很多處理時,結果可能會是List包住一些數值,例如找輪廓或連通域分析時,沒有剛好的特徵可能就會有List含(空值得)形式出現。 為了避免報錯,我們就要額外先做一些處理,先做判斷是否有值在往下一個階段。 all 和 any 是 Python 中用於檢查可迭代物件(如清單、元組、集合等)
Thumbnail
當我們在做很多處理時,結果可能會是List包住一些數值,例如找輪廓或連通域分析時,沒有剛好的特徵可能就會有List含(空值得)形式出現。 為了避免報錯,我們就要額外先做一些處理,先做判斷是否有值在往下一個階段。 all 和 any 是 Python 中用於檢查可迭代物件(如清單、元組、集合等)
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
本文介紹Python程式設計中處理異常的try, except, else, finally語句,並提供程式範例來更深刻理解使用方法。
Thumbnail
本文介紹Python程式設計中處理異常的try, except, else, finally語句,並提供程式範例來更深刻理解使用方法。
Thumbnail
在人生中總是會遇到許多選擇,做了不同的選擇產生的結果也會不一樣,大多時候都是在為了要吃什麼在抉擇,小孩才做選擇大人全部都要,全部都要何嘗也不是一個選擇。 在Python程式語言中也有選擇的語法,就是If Else,如果是就做什麼,不是就做什麼,有別於其他程式語言,他不一定要有else,可以只有If
Thumbnail
在人生中總是會遇到許多選擇,做了不同的選擇產生的結果也會不一樣,大多時候都是在為了要吃什麼在抉擇,小孩才做選擇大人全部都要,全部都要何嘗也不是一個選擇。 在Python程式語言中也有選擇的語法,就是If Else,如果是就做什麼,不是就做什麼,有別於其他程式語言,他不一定要有else,可以只有If
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News