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

更新於 2024/11/12閱讀時間約 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 模組和套件系統有更深入的理解!

歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Python 中的錯誤處理機制十分靈活,能讓我們捕捉、管理並處理程式中可能出現的各種錯誤和異常情況。本文將深入介紹 Python 中的錯誤處理語法,包括 try-except 結構、raise 用法以及如何自訂例外類別,讓程式更具容錯性和健壯性。
Python 的物件導向程式設計 (Object-Oriented Programming, OOP) 是其最強大和靈活的特性之一。通過 OOP 的思想,我們可以組織、抽象並簡化程式碼結構,以達到更好的可維護性和可擴展性。
Python 是一個功能強大的程式語言,提供了非常直觀的檔案處理方式。無論是處理數據檔案、讀取日誌文件,還是生成報表,檔案讀寫操作都是程式開發中的重要環節。這篇文章將帶你深入了解如何使用 Python 操作檔案,包括讀取和寫入、檔案模式選擇以及上下文管理器的使用。
在這篇教學中,我們將深入介紹 Python 的控制流程,包括 if-else 判斷、for 和 while 迴圈、break 和 continue 語句的使用,以及如何定義函數並進行參數傳遞。這些概念都是撰寫 Python 程式時的基礎知識,掌握它們將幫助你編寫更清晰、有效的程式碼。
Python 是一門功能強大且簡潔的程式語言,內建了多種資料結構來幫助開發者處理各種不同的需求。今天,我們將介紹五種常見的資料結構:字串、清單、元組、集合和字典,並學習它們的使用方式。
Python 是一個功能強大且易於學習的程式語言,適合初學者快速上手。今天,我們將介紹 Python 的幾個基礎概念,涵蓋變數、資料型別、運算符、條件判斷、迴圈和函式,這些是所有 Python 程式的核心組件。
Python 中的錯誤處理機制十分靈活,能讓我們捕捉、管理並處理程式中可能出現的各種錯誤和異常情況。本文將深入介紹 Python 中的錯誤處理語法,包括 try-except 結構、raise 用法以及如何自訂例外類別,讓程式更具容錯性和健壯性。
Python 的物件導向程式設計 (Object-Oriented Programming, OOP) 是其最強大和靈活的特性之一。通過 OOP 的思想,我們可以組織、抽象並簡化程式碼結構,以達到更好的可維護性和可擴展性。
Python 是一個功能強大的程式語言,提供了非常直觀的檔案處理方式。無論是處理數據檔案、讀取日誌文件,還是生成報表,檔案讀寫操作都是程式開發中的重要環節。這篇文章將帶你深入了解如何使用 Python 操作檔案,包括讀取和寫入、檔案模式選擇以及上下文管理器的使用。
在這篇教學中,我們將深入介紹 Python 的控制流程,包括 if-else 判斷、for 和 while 迴圈、break 和 continue 語句的使用,以及如何定義函數並進行參數傳遞。這些概念都是撰寫 Python 程式時的基礎知識,掌握它們將幫助你編寫更清晰、有效的程式碼。
Python 是一門功能強大且簡潔的程式語言,內建了多種資料結構來幫助開發者處理各種不同的需求。今天,我們將介紹五種常見的資料結構:字串、清單、元組、集合和字典,並學習它們的使用方式。
Python 是一個功能強大且易於學習的程式語言,適合初學者快速上手。今天,我們將介紹 Python 的幾個基礎概念,涵蓋變數、資料型別、運算符、條件判斷、迴圈和函式,這些是所有 Python 程式的核心組件。
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
本章節的目的是介紹Java中的套件使用,包括如何引用第三方套件和自定義模組,如何創建和使用自定義套件,以及介紹一些常見的Java標準庫套件。這些內容將幫助讀者更好地理解和使用Java的套件系統。
Thumbnail
在 TypeScript 中,套件是模組化代碼的集合,可以提高代碼的可重用性和可維護性。常見的套件包括各種庫和框架,如 lodash、express 等。以下是有關引用套件、自定義套件和常見套件的詳細介紹。
Thumbnail
先前學到自定函式的使用方法,那如果在一個很龐大的程式架構中發散了一推自定函式,有沒有辦法可以整理一下,讓程式結構整齊又簡潔呢? 可以使用裝飾器staticmethod 定義靜態方法,全部整理到一個類別去,想像成是一個工具箱的概念,工具箱就是類別,靜態方法就像是裡面的工具一樣。
Thumbnail
當你想讓原本函式新增其他功能,又不想更動原本函式時,Python提供了一種強大而靈活的工具,那就是裝飾器。 但對於新手來說這個裝飾器,非常抽象難以理解,讓我們繼續往下看,慢慢的抽絲剝繭吧。 在 Python 中,使用「@」當做裝飾器使用的語法糖符號
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
Python 裝飾器(Decorator),它能夠讓你在不改變原始函式的情況下,增加額外的功能。本文將介紹 Python 裝飾器(Decorator)的基本概念、實現方式,並提供實際應用範例讓你更好了解Python 裝飾器。
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
本章節的目的是介紹Java中的套件使用,包括如何引用第三方套件和自定義模組,如何創建和使用自定義套件,以及介紹一些常見的Java標準庫套件。這些內容將幫助讀者更好地理解和使用Java的套件系統。
Thumbnail
在 TypeScript 中,套件是模組化代碼的集合,可以提高代碼的可重用性和可維護性。常見的套件包括各種庫和框架,如 lodash、express 等。以下是有關引用套件、自定義套件和常見套件的詳細介紹。
Thumbnail
先前學到自定函式的使用方法,那如果在一個很龐大的程式架構中發散了一推自定函式,有沒有辦法可以整理一下,讓程式結構整齊又簡潔呢? 可以使用裝飾器staticmethod 定義靜態方法,全部整理到一個類別去,想像成是一個工具箱的概念,工具箱就是類別,靜態方法就像是裡面的工具一樣。
Thumbnail
當你想讓原本函式新增其他功能,又不想更動原本函式時,Python提供了一種強大而靈活的工具,那就是裝飾器。 但對於新手來說這個裝飾器,非常抽象難以理解,讓我們繼續往下看,慢慢的抽絲剝繭吧。 在 Python 中,使用「@」當做裝飾器使用的語法糖符號
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
Python 裝飾器(Decorator),它能夠讓你在不改變原始函式的情況下,增加額外的功能。本文將介紹 Python 裝飾器(Decorator)的基本概念、實現方式,並提供實際應用範例讓你更好了解Python 裝飾器。