iT邦幫忙

0

【Python筆記】流程控制(Flow Control)下

  • 分享至 

  • xImage
  •  

try...except(例外處理)

功能:當程式遇到錯誤時,不會直接中止,而是改執行你指定的處理方式。

一句話記憶:「預防程式因錯誤而當掉。」

情境一:使用者輸入錯誤

try:
    age = int(input("請輸入年齡:"))
    print(str(age)+"歲")

except:
    print("請輸入數字")

輸出

請輸入年齡:二十歲
請輸入數字

情境二:除數不能為 0

try:
    a=int(input("請輸入一個整數:"))
    print(100 / a)
except:
    print("不能除以0")

此時輸入0,則會
輸出

不能除以0

資料工程常見用途

  • API 回傳失敗
  • CSV 檔不存在
  • JSON 格式錯誤
  • 型別轉換失敗

match...case(多條件判斷)

Python 3.10 以上支援

功能:當有很多種固定選項時,比一直寫 if...elif...else 更清楚。

一句話記憶:「依照不同情況,走不同分支。」

情境一:飲料點餐

drink=str(input("請輸入飲料名稱:"))

match drink:

    case "紅茶":
        print("30元")

    case "奶茶":
        print("40元")

    case "咖啡":
        print("50元")

    case _:
        print("沒有販售")

請輸入飲料名稱:奶茶
輸出

40元

情境二:星期提醒

day = "Sunday"

match day:

    case "Monday":
        print("上班")

    case "Saturday":
        print("休息")

    case "Sunday":
        print("出去玩")

    case _:
        print("一般日")

輸出

出去玩

資料工程常見用途
例如不同檔案格式:

match file_type:

    case "csv":
        print("讀CSV")

    case "json":
        print("讀JSON")

    case "xml":
        print("讀XML")

三元運算式(Ternary Operator)

功能:只有一個簡單判斷時,可以把 if...else 寫成一行。

一句話記憶:「簡短版 if...else。」

一般寫法

score = 80

if score >= 60:
    result = "及格"
else:
    result = "不及格"
print(result)

三元寫法

score = 80

result = "及格" if score >= 60 else "不及格"

print(result)

輸出

及格

情境一:判斷成年

age = 18
status = "成年" if age >= 18 else "未成年"
print(status)

輸出

成年

情境二:登入成功

login = True
message = "登入成功" if login else "登入失敗"
print(message)

輸出

登入成功

資料工程常見用途
資料缺失值替換:

name = user if user else "未知使用者"

如果沒有資料,就給預設值。

assert(斷言)

功能:確認某件事情一定成立。

如果條件不成立,就立刻停止程式並提醒開發者。

一句話記憶:「確認程式沒有違反預期。」

情境一:確認年齡合法

age = 20

assert age >= 18

print("可以進入")

輸出

可以進入

如果:

age = 15
assert age >= 18

輸出

AssertionError

代表:
這個條件不應該發生

情境二:確認列表不是空的

students = ["Amy", "John"]
assert len(students) > 0
print("開始點名")

如果:

students = []

程式就會停止。

資料工程常見用途
例如 ETL 前確認資料:

assert len(data) > 0

代表:

資料不能是空的或確認欄位存在:

assert "name" in row

避免後續處理時因缺少欄位而發生錯誤。

語法 功能 什麼時候使用
try...except 捕捉錯誤,避免程式中斷 使用者輸入、檔案、API、資料轉換
match...case 多種固定情況的分支判斷 選單、指令、檔案格式
三元運算式 一行完成簡單 if...else 簡單條件賦值
assert 驗證條件是否成立 開發、測試、資料驗證

圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言