Bài 11: Module và thư viện chuẩn trong Python

Bài 10 bạn đã biết lưu dữ liệu ra file. Nhưng bạn không cần tự viết mọi thứ từ đầu: Python đi kèm một thư viện chuẩn khổng lồ — những module làm sẵn cho toán học, số ngẫu nhiên, ngày giờ và rất nhiều việc khác. Bài này dạy cách import và dùng module có sẵn, rồi tự tách code của bạn thành module riêng để tái dùng. Đây là bước giúp chương trình gọn gàng và mạnh mẽ hơn nhiều.
⏱️ Cách học bài này (~30 phút): đọc cách import + 3 module hữu ích (12’), tự gõ và chạy bài thực hành (12’), xem lỗi thường gặp (3’), tự kiểm + lưu code mang về (3’).
Mục tiêu bài học
Sau bài này bạn sẽ:
- Hiểu module và thư viện chuẩn là gì.
- Import theo hai cách (
import mathvàfrom math import …). - Dùng 3 module hữu ích: math, random, datetime.
- Tự tạo module riêng để tái dùng code.
Nội dung: module và thư viện chuẩn
1. Import một module
import math
print(math.sqrt(16)) # 4.0 — căn bậc hai
print(round(math.pi, 2)) # 3.14 — số pi
import math nạp cả module; khi dùng, ghi math. phía trước để biết hàm đến từ đâu.
2. Chỉ lấy thứ cần (from … import …)
from math import sqrt, pi
print(sqrt(25)) # 5.0 — dùng thẳng, không cần math.
print(round(pi, 2)) # 3.14
Cách này gõ ngắn hơn nhưng khó biết hàm từ đâu ra. Người mới nên ưu tiên import math cho rõ ràng.
3. random — số & lựa chọn ngẫu nhiên
import random
print(random.randint(1, 6)) # số nguyên ngẫu nhiên 1..6 (như xúc xắc)
print(random.choice(["táo", "cam", "lê"])) # chọn ngẫu nhiên 1 phần tử
4. datetime — ngày giờ
from datetime import date
hom_nay = date.today()
print(hom_nay) # ví dụ: 2026-07-29
print(hom_nay.year) # chỉ lấy năm
Code mẫu có chú thích: chương trình tung xúc xắc
Dùng random làm trò tung xúc xắc và datetime ghi thời điểm chơi:
import random
from datetime import date
so = random.randint(1, 6) # tung xúc xắc: 1..6
print(f"Bạn tung được: {so}")
if so == 6:
print("Tuyệt! Điểm cao nhất 🎉")
else:
print("Thử lại lần sau nhé.")
print(f"Ngày chơi: {date.today()}") # ghi lại ngày hôm nay
Mấu chốt: random.randint(1, 6) cho số ngẫu nhiên bao gồm cả 1 và 6; date.today() trả về ngày hiện tại.
Bài thực hành code (tự gõ)
Bài 1 — math: in ra căn bậc hai của 144 và số pi làm tròn 3 chữ số thập phân.
Bài 2 — random: viết chương trình “oẳn tù tì”: máy random.choice(["búa", "kéo", "bao"]) và in ra lựa chọn của máy.
Bài 3 — datetime: in ra ngày hôm nay và riêng con số năm hiện tại.
Lỗi thường gặp & cách sửa
ModuleNotFoundError→ gõ sai tên module, hoặc module đó không thuộc thư viện chuẩn (phải cài thêm). math/random/datetime đều có sẵn.- Quên tiền tố
math.khi dùngimport math→ gọisqrt(16)sẽ lỗi; phải làmath.sqrt(16)(hoặc dùngfrom math import sqrt). random.randint(1, 6)tưởng không có số 6 → thực rarandintbao gồm cả hai đầu, tức có cả 1 và 6.- Đặt tên file trùng tên module (ví dụ lưu file là
random.py) → Python nạp nhầm file của bạn. Đừng đặt tên file trùng tên module chuẩn.
💾 Mang về — tự tạo module riêng
Tách các hàm hay dùng vào một file, rồi import ở file khác (cùng thư mục):
# tienich.py — module của bạn
import math # import đặt ở ĐẦU file (thói quen chuẩn)
def chao(ten):
return f"Xin chào, {ten}!"
def dien_tich_hinh_tron(ban_kinh):
return round(math.pi * ban_kinh ** 2, 2)
# main.py — dùng module vừa tạo
import tienich
print(tienich.chao("Lan")) # Xin chào, Lan!
print(tienich.dien_tich_hinh_tron(5)) # 78.54
Thuật ngữ chốt
| Thuật ngữ | Giải thích ngắn |
|---|---|
| module | Một file .py chứa sẵn hàm/biến để tái dùng |
| thư viện chuẩn | Bộ module có sẵn khi cài Python |
import x |
Nạp cả module, dùng x.ham() |
from x import y |
Lấy riêng y, dùng thẳng y() |
| math | Module toán học (sqrt, pi…) |
| random | Module số/lựa chọn ngẫu nhiên |
| datetime | Module ngày giờ (date.today…) |
Tự kiểm tra & lời giải
import mathrồi gọi căn bậc hai của 9 viết thế nào? (Đáp án:math.sqrt(9))random.randint(1, 6)có thể ra số 6 không? (Đáp án: Có — randint bao gồm cả hai đầu)- Lấy ngày hôm nay dùng gì? (Đáp án:
date.today()sau khifrom datetime import date)
Lời giải Bài thực hành:
# Bài 1
import math
print(math.sqrt(144)) # 12.0
print(round(math.pi, 3)) # 3.142
# Bài 2
import random
print("Máy chọn:", random.choice(["búa", "kéo", "bao"]))
# Bài 3
from datetime import date
hom_nay = date.today()
print(hom_nay)
print("Năm:", hom_nay.year)
Ghi nhớ nhanh
- module = file .py tái dùng; thư viện chuẩn = có sẵn, chỉ cần
import. import math→ gọimath.sqrt(...);from math import sqrt→ gọi thẳngsqrt(...).- Ba module hữu ích ngay: math (toán), random (ngẫu nhiên), datetime (ngày giờ).
- Đừng đặt tên file trùng tên module chuẩn (vd
random.py).
👉 Bài tập về nhà: viết chương trình “chọn món ăn hôm nay” — dùng random.choice để chọn ngẫu nhiên từ danh sách món ăn của bạn, và date.today() in kèm ngày. Bài tiếp theo trong series: Bài 12 — Lập trình hướng đối tượng cơ bản (class) (sắp đăng).
Câu hỏi thường gặp
Module và thư viện trong Python là gì?
Module là một file Python (.py) chứa sẵn các hàm và biến để bạn dùng lại. Thư viện chuẩn (standard library) là bộ module có sẵn khi cài Python — bạn không cần cài thêm, chỉ cần ‘import’ là dùng được, ví dụ math (toán), random (ngẫu nhiên), datetime (ngày giờ). Dùng module giúp bạn không phải viết lại những thứ người khác đã làm tốt.
import math và from math import sqrt khác nhau thế nào?
‘import math’ nạp cả module, khi dùng phải ghi tên module phía trước: math.sqrt(16). ‘from math import sqrt’ chỉ lấy riêng hàm sqrt, dùng trực tiếp: sqrt(16). Cách đầu rõ ràng hơn (biết hàm đến từ đâu) và tránh trùng tên; cách sau gõ ngắn hơn. Người mới nên ưu tiên ‘import math’ rồi gọi math.sqrt cho dễ theo dõi.
Làm sao tự tạo module của riêng mình?
Chỉ cần lưu các hàm vào một file .py, ví dụ tienich.py, rồi ở file khác cùng thư mục viết ‘import tienich’ và gọi ‘tienich.ten_ham()’. Đây là cách tách code thành nhiều file gọn gàng khi chương trình lớn dần, và tái dùng hàm ở nhiều nơi mà không phải chép đi chép lại.
Thợ code chính hiệu, thích dắt người mới qua mấy đoạn 'khó nhằn' bằng giọng nhẹ tênh. Châm ngôn: cứ làm dự án thật, sai thì sửa, vui là chính.
Bài liên quan

Bài 9: JavaScript — thao tác DOM (đổi nội dung, ẩn/hiện, tạo phần tử)
Bài 9 series Web cơ bản (bài học 30 phút): thao tác DOM bằng JavaScript — chọn phần tử, đổi nội dung và kiểu, ẩn/hiện, tạo phần tử mới — làm danh sách việc cần làm tương tác; kèm thực hành và file mang về.

Bài 10: Đọc và ghi file trong Python
Bài 10 series Python cho người mới (bài học 30 phút): đọc và ghi file văn bản — lưu dữ liệu ra file, đọc lại, ghi thêm — dùng with open và encoding UTF-8 cho tiếng Việt; kèm bài tập và code mang về.

Bài 8: JavaScript — biến, hàm và sự kiện
Bài 8 series Web cơ bản (bài học 30 phút): thêm tương tác cho trang bằng JavaScript — biến, hàm và sự kiện click — làm một nút bấm đổi nội dung trang; kèm thực hành và file mang về.