[Python教學] 中級:模組與套件

更新於 發佈於 閱讀時間約 12 分鐘

Python 模組和套件系統讓我們的程式可以變得更高效且具備更多功能。本篇文章將深入介紹 Python 的模組,包括模組的匯入與使用、Python 的內建模組,以及如何透過 pip 安裝第三方套件,讓您的開發流程更加便利。


1. 模組的匯入與使用

Python 的模組是一組封裝好的程式碼,可以匯入到其他 Python 檔案中使用,避免重複撰寫相同的程式碼並提高程式的組織性。Python 本身內建了許多模組,此外,我們也可以建立自訂模組或安裝第三方套件來擴展功能。

匯入模組的語法

Python 提供幾種不同的匯入方式,視情況選擇適合的方式:

import 模組名稱

這種語法將整個模組匯入,可以使用 模組名稱.功能 的格式來調用模組中的功能。

範例:匯入 math 模組

import math
result = math.sqrt(16) # 使用 math 模組的 sqrt 函數
print("16 的平方根是:", result)

使用 from 關鍵字匯入特定功能

如果只想匯入模組中的部分功能,可以使用 from 模組 import 功能 的語法。

from math import sqrt, pi
print("16 的平方根是:", sqrt(16))
print("圓周率 pi 的值是:", pi)

使用 as 關鍵字設定別名

當模組名稱太長或容易和變數名混淆時,我們可以為模組設定一個別名。

import math as m
print("16 的平方根是:", m.sqrt(16))

2. Python 內建模組

Python 提供了大量的內建模組,讓開發者可以直接使用,無需安裝。以下是幾個常用的內建模組介紹:

2.1 math 模組

math 模組包含了許多數學運算函數,例如平方根、三角函數、對數運算等。

import math
print("16 的平方根是:", math.sqrt(16))
print("圓周率 pi 的值是:", math.pi)

2.2 random 模組

random 模組提供生成隨機數的功能,適合用於隨機抽樣、模擬、遊戲開發等應用。

常用功能

  • 生成隨機整數random.randint(a, b)
  • 從序列中隨機選擇random.choice(sequence)
  • 生成 0 到 1 的隨機浮點數random.random()

範例

import random

print("隨機整數:", random.randint(1, 10))
print("隨機選擇一個元素:", random.choice(['apple', 'banana', 'cherry']))

2.3 os 模組

os 模組提供了操作系統層面的功能,比如文件和目錄管理。這個模組讓我們能夠輕鬆地與作業系統互動。

常用功能

  • 獲取當前工作目錄os.getcwd()
  • 變更目錄os.chdir(path)
  • 列出目錄內容os.listdir(path)
  • 檢查路徑是否存在os.path.exists(path)

範例

import os

current_dir = os.getcwd()
print("目前目錄:", current_dir)

os.makedirs("test_directory", exist_ok=True)
print("目錄內容:", os.listdir(current_dir))

2.4 sys 模組

sys 模組用於與 Python 解釋器互動,主要提供系統級別的參數和函數,比如獲取命令行參數、控制解釋器的執行等。

常用功能

  • 命令行參數sys.argv(第一個參數為程式名稱,之後為命令行參數)
  • 退出程序sys.exit()
  • 獲取 Python 版本sys.version

範例

import sys

print("Python 版本:", sys.version)
print("命令行參數:", sys.argv)

2.5 time 模組

time 模組提供了時間相關的操作,如取得當前時間、計算執行時間等。

常用功能

  • 獲取當前時間(秒)time.time()
  • 延遲執行time.sleep(seconds)
  • 格式化時間time.strftime(format, time.localtime())

範例

import time

print("當前時間(秒):", time.time())
time.sleep(1)
print("一秒後執行")
print("格式化時間:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

2.6 datetime 模組

datetime 模組提供了處理日期和時間的高級功能,適合用於時間戳記、日期計算等應用,比 time 模組更直觀。

常用功能

  • 取得當前日期和時間datetime.datetime.now()
  • 取得特定日期時間datetime.datetime(year, month, day, hour, minute, second)
  • 日期運算:加減時間,計算日期之間的差值

範例

from datetime import datetime, timedelta

now = datetime.now()
print("現在時間:", now)

# 加一天
tomorrow = now + timedelta(days=1)
print("明天這時候:", tomorrow)

2.7 re 模組(正則表達式)

re 模組提供了正則表達式操作,用於模式匹配和字符串操作,特別適合進行複雜的字串處理。

常用功能

  • 搜尋字串是否符合正則表達式re.search(pattern, string)
  • 替換字串re.sub(pattern, repl, string)
  • 分割字串re.split(pattern, string)

範例

import re

text = "Hello, my number is 12345"
match = re.search(r"\d+", text)
if match:
print("找到數字:", match.group())

2.8 collections 模組

collections 模組提供了幾種高效的資料結構,例如 Counterdefaultdictnamedtuple,適合處理複雜的資料需求。

常用功能

  • 計算元素頻率Counter
  • 帶有預設值的字典defaultdict
  • 具名元組namedtuple

範例

from collections import Counter, defaultdict, namedtuple

# Counter
counter = Counter("hello world")
print("字母出現次數:", counter)

# defaultdict
dd = defaultdict(int)
dd['apple'] += 1
print("defaultdict:", dd)

# namedtuple
Point = namedtuple("Point", ["x", "y"])
p = Point(10, 20)
print("Point:", p.x, p.y)

2.9 json 模組

json 模組用於解析和生成 JSON 資料格式,適合處理 API 數據、存取結構化資料。

常用功能

  • 將 Python 資料轉換為 JSONjson.dumps(obj)
  • 將 JSON 字串解析為 Python 資料json.loads(json_string)

範例

import json

data = {'name': 'John', 'age': 30, 'city': 'New York'}
json_data = json.dumps(data)
print("轉為 JSON 字串:", json_data)

parsed_data = json.loads(json_data)
print("解析 JSON:", parsed_data)



3. 安裝第三方套件(pip)

Python 的 pip 工具用於管理和安裝第三方套件。第三方套件是一群由社群開發的模組,存放在 Python 的官方套件庫 PyPI 上,能大幅擴展 Python 的功能。

檢查是否安裝了 pip

一般來說,Python 會自帶 pip,但可以透過以下指令確認:

pip --version

若無法找到 pip,可以到 Python 官方網站 下載最新版的 Python,或執行 python -m ensurepip --upgrade 來安裝 pip。

使用 pip 安裝套件

以下是使用 pip 安裝、更新、列出和移除套件的基本指令:

  • 安裝套件pip install 套件名稱
  • 更新套件pip install --upgrade 套件名稱
  • 列出已安裝套件pip list
  • 移除套件pip uninstall 套件名稱

範例:安裝 requests 套件

requests 是一個用於 HTTP 請求的套件,可以幫助我們向網站發送請求並取得網頁內容。

pip install requests

安裝後,可以在 Python 程式中使用 requests 模組來取得網頁數據:

import requests

response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
print(response.json())

使用 requirements.txt 來管理專案依賴

當開發一個需要多個套件的專案時,可以使用 requirements.txt 文件來列出所有依賴套件,並使用以下指令安裝所有列出的套件:

pip install -r requirements.txt

requirements.txt 文件格式非常簡單,每行指定一個套件名稱,後面可以跟套件的版本號:

requests==2.26.0
numpy==1.21.2

總結

本文介紹了 Python 模組的匯入和使用方法、常見的內建模組和其應用範例、以及如何使用 pip 安裝和管理第三方套件。掌握這些模組和套件管理技巧,能有效提升開發效率,幫助您更靈活地應對各種程式需求。希望這篇文章能讓您對 Python 模組和套件系統有更深入的理解!

留言
avatar-img
留言分享你的想法!
avatar-img
追極光的北極熊|軟體工程師的小天地
12會員
163內容數
歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
看更多
你可能也想看
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
pip和pipenv都是常用的Python套件管理工具,但它們的用途和運作方式略有不同。讓我們來看看它們的差異...
Thumbnail
pip和pipenv都是常用的Python套件管理工具,但它們的用途和運作方式略有不同。讓我們來看看它們的差異...
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
在Python中安裝套件通常是通過pip這個工具來完成的。 pip是Python的包管理器,用於安裝和管理Python套件 在Python中安裝套件通常是通過pip這個工具來完成的。 pip是Python的包管理器,用於安裝和管理Python套件。以下是基本的安裝步驟: 確認p
Thumbnail
在Python中安裝套件通常是通過pip這個工具來完成的。 pip是Python的包管理器,用於安裝和管理Python套件 在Python中安裝套件通常是通過pip這個工具來完成的。 pip是Python的包管理器,用於安裝和管理Python套件。以下是基本的安裝步驟: 確認p
Thumbnail
⏳ 優質好文,歡迎支持與學習,讓阿Han給你最歡樂的學習課程、最貼近業界的實戰技巧…,just for fun fun fun…😄 相信對於具有開發基礎的學員們來說,基本的開發工程相信已經得心應手了, 那麼您們可能會苦於這些問題: ❓ 哇! pip install別人的程式好方便
Thumbnail
⏳ 優質好文,歡迎支持與學習,讓阿Han給你最歡樂的學習課程、最貼近業界的實戰技巧…,just for fun fun fun…😄 相信對於具有開發基礎的學員們來說,基本的開發工程相信已經得心應手了, 那麼您們可能會苦於這些問題: ❓ 哇! pip install別人的程式好方便
Thumbnail
在第十二課中,我們將學習 Python 中的模塊和包的概念。 模塊和包是 Python 中組織程式碼的主要方式,它們讓你能夠以邏輯和易於管理的方式組織你的程式碼。
Thumbnail
在第十二課中,我們將學習 Python 中的模塊和包的概念。 模塊和包是 Python 中組織程式碼的主要方式,它們讓你能夠以邏輯和易於管理的方式組織你的程式碼。
Thumbnail
在第七課,我們將談論 Python 中的模組 (Modules) 和套件 (Packages)。 模組和套件允許我們將 Python 程式碼組織成可重用的單元,有助於程式碼的模組化和重用。
Thumbnail
在第七課,我們將談論 Python 中的模組 (Modules) 和套件 (Packages)。 模組和套件允許我們將 Python 程式碼組織成可重用的單元,有助於程式碼的模組化和重用。
Thumbnail
Hi, 大家好。我是茶桁。 在我们之前的课程中,讲解了数据,函数,类,模块以及包。这些基本上已经构成了Python的全部了。 那么,我们在学习Python的包之后,有没有思考过,既然Python有内置模块,我们也可以自己写一些模块来使用,那一定有很多第三方写过相应的模块来供我们使用。那么,这
Thumbnail
Hi, 大家好。我是茶桁。 在我们之前的课程中,讲解了数据,函数,类,模块以及包。这些基本上已经构成了Python的全部了。 那么,我们在学习Python的包之后,有没有思考过,既然Python有内置模块,我们也可以自己写一些模块来使用,那一定有很多第三方写过相应的模块来供我们使用。那么,这
Thumbnail
Hi, 大家好。我是茶桁。 这一段Python之旅怎么样?还算顺利吧? 之前我们都学习了些什么?有基本常识,流程,函数,不同类型的数据以及一些模块对吧?并且还做了一些练习来巩固所学过的内容。 那么今天,我们接着来学习模块。不过今天要学的模块和以往不太一样了,以前我们学习的都是Python内
Thumbnail
Hi, 大家好。我是茶桁。 这一段Python之旅怎么样?还算顺利吧? 之前我们都学习了些什么?有基本常识,流程,函数,不同类型的数据以及一些模块对吧?并且还做了一些练习来巩固所学过的内容。 那么今天,我们接着来学习模块。不过今天要学的模块和以往不太一样了,以前我们学习的都是Python内
Thumbnail
大型程式的開發通常不會由一個人獨力完成,而是將程式依功能拆分成不同的函數或是類別,由不同人協力開發成各個模組,最後再將這些模組導入主程式,或是直接套用現有的模組。模組依來源可以分成三大類: Python內建的模組 外部模組,需從第三方的軟體儲存庫(如PyPI)並安裝使用 程式開發者自行開發的模組
Thumbnail
大型程式的開發通常不會由一個人獨力完成,而是將程式依功能拆分成不同的函數或是類別,由不同人協力開發成各個模組,最後再將這些模組導入主程式,或是直接套用現有的模組。模組依來源可以分成三大類: Python內建的模組 外部模組,需從第三方的軟體儲存庫(如PyPI)並安裝使用 程式開發者自行開發的模組
Thumbnail
  python這個程式語言,還有一項優點就是,擁有龐大的模組支援,所以在寫程式時可多利用網路上的模組,節省寫程式的時間。
Thumbnail
  python這個程式語言,還有一項優點就是,擁有龐大的模組支援,所以在寫程式時可多利用網路上的模組,節省寫程式的時間。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News