iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0

第二十二天:Python 中的模塊與套件(Modules and Packages)

內容概述:

今天,我們將探討 模塊(Modules)與套件(Packages) 在 Python 中的應用。模塊是將相關程式碼進行封裝和組織的方式,讓我們可以更清晰地管理和重用程式碼,而套件則是模塊的集合。這不僅能使程式碼更具結構性,也有助於在專案中提升效率和可維護性。

課程大綱:

  1. 模塊的概念

    • 模塊是 Python 中一個檔案,它包含了 Python 定義和聲明,如變數、函式和類別。
    • 當一個專案程式碼增長時,將相關功能分離到不同的模塊中,可以讓程式碼更加組織化和易於維護。
    # module_example.py
    def greet(name):
        return f"Hello, {name}!"
    

    將上述程式碼保存為 module_example.py,即為一個模塊。

  2. 如何導入模塊

    • 使用 import 關鍵字來導入一個模塊,並使用其中的函式或變數:
    import module_example
    
    print(module_example.greet("Alice"))
    

    這樣,我們就能夠調用模塊中的函式 greet,並輸出結果。

  3. 導入模塊中的特定功能

    • 如果只想導入模塊中的特定功能,可以使用 from ... import 語法:
    from module_example import greet
    
    print(greet("Bob"))
    

    這可以讓我們避免每次使用模塊時都要加上模塊名稱,方便使用。

  4. 建立套件

    • 套件是一個含有 __init__.py 檔案的目錄,其中可以包含多個模塊。這個 __init__.py 檔案的存在,告訴 Python 這個目錄是一個套件。

    範例結構:

    my_package/
    ├── __init__.py
    ├── module_one.py
    └── module_two.py
    

    my_package 中,我們可以將模塊組織起來,並通過以下方式來導入:

    from my_package import module_one, module_two
    
    print(module_one.some_function())
    print(module_two.another_function())
    
  5. 使用標準庫模塊

    • Python 提供了豐富的標準庫模塊,這些模塊可以處理各種常見的任務,例如操作系統相關操作(os 模塊)、數學計算(math 模塊)等。
    import math
    
    result = math.sqrt(16)
    print(result)  # 輸出:4.0
    

    通過標準庫,我們能夠大大簡化開發過程,並避免重複造輪子。

  6. 模塊的優勢

    • 可重用性: 一旦模塊被建立,我們可以在多個程式中重複使用它,減少重複編寫相同功能的時間。
    • 結構清晰: 模塊讓大型程式更具結構性,將程式拆分為易於維護和管理的小塊。
    • 易於除錯: 當程式出錯時,可以快速定位到相關模塊進行修正。

實作練習:

  1. 任務一:建立一個模塊

    • 建立一個名為 math_operations.py 的模塊,包含加法、減法、乘法和除法的函式。然後建立另一個程式來導入這些函式並進行運算。
  2. 任務二:建立一個套件

    • 建立一個套件,包含多個模塊。每個模塊負責一項數學操作(如加法模塊、乘法模塊等),並通過 from ... import 語法來導入它們,完成一個完整的計算應用。
  3. 任務三:使用標準庫模塊

    • 使用 Python 的 random 模塊生成一個隨機數,並根據隨機數執行不同的數學操作(例如當隨機數大於 0.5 時進行加法,否則進行乘法)。

這些任務涵蓋了模組和套件的建立與使用,以及如何整合 Python 的標準庫進行實際運用。下面是每個任務的詳細步驟與範例代碼。


任務一:建立一個模組
目標:
  1. 建立一個名為 math_operations.py 的模組,包含加法、減法、乘法和除法的函數。
  2. 使用這些函數來進行基本的數學運算。
步驟:
  1. 在你當前的目錄中,建立一個名為 math_operations.py 的文件。
  2. 定義四個函數來實現加法、減法、乘法和除法。
math_operations.py 的範例代碼:
# math_operations.py

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    if b == 0:
        return "不能除以零"
    return a / b
測試模組:

在另一個 Python 文件中或交互式 Python 環境中使用該模組:

import math_operations

result1 = math_operations.add(10, 5)
result2 = math_operations.subtract(10, 5)
result3 = math_operations.multiply(10, 5)
result4 = math_operations.divide(10, 5)

print(result1, result2, result3, result4)

任務二:建立一個套件
目標:
  1. 建立一個包含多個模組的套件,並使用 from ... import 來導入模組。
  2. 套件應該包含至少兩個不同的模組,每個模組提供不同的數學運算。
步驟:
  1. 創建一個名為 math_package 的目錄作為你的套件。
  2. 在該目錄下,建立兩個模組文件,如 basic_operations.pyadvanced_operations.py
  3. math_package 目錄中,創建一個空的 __init__.py 文件,以標識該目錄為一個 Python 套件。
結構:
math_package/
    __init__.py
    basic_operations.py
    advanced_operations.py
basic_operations.py 的範例代碼:
# math_package/basic_operations.py

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

advanced_operations.py 的範例代碼:

# math_package/advanced_operations.py

def multiply(a, b):
    return a * b

def divide(a, b):
    if b == 0:
        return "不能除以零"
    return a / b

測試套件:

使用 from ... import 來導入模組並進行數學運算:

from math_package.basic_operations import add, subtract
from math_package.advanced_operations import multiply, divide

print(add(3, 2))         # 輸出: 5
print(subtract(7, 4))    # 輸出: 3
print(multiply(6, 3))    # 輸出: 18
print(divide(9, 3))      # 輸出: 3.0

任務三:使用標準庫模組
目標:
  1. 使用 Python 的 random 模組生成一個隨機數。
  2. 根據隨機數的值,執行不同的數學運算:如果隨機數大於 0.5,則進行加法;否則,進行乘法。
步驟:
  1. 使用 random.random() 函數生成 0 到 1 之間的隨機數。
  2. 實現條件分支來決定執行加法還是乘法。
範例代碼:
import random
from math_package.basic_operations import add
from math_package.advanced_operations import multiply

# 生成隨機數
random_number = random.random()
print(f"隨機數: {random_number}")

# 根據隨機數決定運算
a, b = 10, 5

if random_number > 0.5:
    result = add(a, b)
    operation = "加法"
else:
    result = multiply(a, b)
    operation = "乘法"

print(f"執行 {operation}: {a} 和 {b} 的結果是 {result}")
解釋:
  • random.random() 生成 0 到 1 之間的浮點數。
  • 根據隨機數的值來決定是執行加法還是乘法運算。
  • 使用來自之前建立的套件中的 addmultiply 函數來進行運算。

這些練習幫助你學習如何建立自己的模組和套件,並利用 Python 標準庫進行隨機數的運算和決策邏輯。


心得與小結:

透過今天的學習,學生們應該能夠理解模塊和套件如何幫助我們組織程式碼並提升程式的可維護性。隨著專案規模的擴展,模塊化的程式設計能夠讓程式碼更加清晰,並使得開發工作更加高效。同時,熟悉 Python 的標準庫模塊也能讓我們在實際開發中更快速地解決問題。


希望今天的課程能夠幫助你更清楚模塊與套件的使用方式,並將其應用在你的 Python 開發過程中。


上一篇
跟著 ChatGPT成為程式大佬!Python 中的異步程式設計(Asynchronous Programming)
下一篇
跟著 ChatGPT成為程式大佬!Python 上下文管理器
系列文
如果讓chatgpt參加iThome鐵人賽,他竟然寫出...!?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言