
Giáo trình Python cho người mới: tài liệu nên đọc
AIDev TeamTham vấn chuyên môn: Nguyễn Việt Chung
Đăng 15 phút đọc3 lượt xem
Mục lục · 21
Giáo trình lập trình Python cho người mới nên viết cho Python 3, còn được cập nhật và có bài tập để tự kiểm tra. Ngày 18/10/2026, mình mở 6 tài liệu miễn phí để xem mỗi tài liệu viết cho bản Python nào, cập nhật lần cuối khi nào, có bài tập không và tải chính thức ở đâu. Mình cũng chạy thử ví dụ của một giáo trình cũ trên Python 3.14.
Người mới nên đọc Think Python (bản 3) hoặc Automate the Boring Stuff with Python (bản 3): cả hai miễn phí trên trang của tác giả, viết cho Python 3, có bài tập kèm đáp án. Tutorial chính thức trên docs.python.org được cập nhật mới nhất, nhưng chính trang này ghi rõ là viết cho người đã biết lập trình. Còn tài liệu viết cho Python 2 thì chỉ nên dùng để tra cứu, đừng học theo.
Ngày 18/10/2026, mình mở từng tài liệu để xem mỗi tài liệu viết cho bản Python nào, cập nhật lần cuối khi nào và có bài tập không. Mình cũng chép 9 ví dụ trong một giáo trình cũ ra chạy thử trên Python 3.14.7. Mấy điều nên biết trước:
Theo python.org, bản Python mới nhất là 3.15.0 (ra ngày 09/10/2026). Nhánh 3.14 vẫn được vá lỗi, và bản mới nhất của nhánh này là 3.14.8.
Mình xem 55 trang lọt top 20 Google với ba từ khóa về giáo trình Python: không trang nào thuộc docs.python.org, còn 18 trang là file PDF do người dùng tự tải lên lại.
Trong 9 ví dụ mình chép từ bản dịch tiếng Việt của tutorial Python 2.5 (năm 2006), 7 ví dụ báo lỗi trên Python 3.14. Hai ví dụ còn lại chạy được nhưng in ra kết quả khác với sách.
Tìm "giáo trình python" trên Google thì gặp gì?
Mình lấy 20 kết quả đầu của Google tại Việt Nam cho ba từ khóa: "giáo trình lập trình python", "tài liệu học python", "giáo trình python pdf". Bỏ các URL trùng thì còn 55 trang. Mình xếp loại từng trang dựa trên tên miền và tiêu đề.

Gần 4/10 kết quả là bài tổng hợp kiểu "20 tài liệu Python hay nhất", và phần lớn các bài này dẫn tiếp sang link tải PDF. 18 kết quả khác là file đăng trên Scribd, Studocu và các trang chia sẻ ebook. Các trang này không cho biết tác giả có đồng ý cho phát hành file hay không. Có file còn là giáo trình in của nhà xuất bản đại học. Bốn kết quả là trang của trường đại học, nhưng hôm đó mình chỉ mở được một trang. Trong ba trang còn lại, một link báo "Từ định danh không có hiệu lực", một trang trả về lỗi 403 và một trang không phản hồi sau 60 giây.
Vì vậy người mới gõ từ khóa này rất dễ tải về một file PDF không rõ năm viết và không rõ viết cho bản Python nào. Ngược lại, sáu tài liệu dưới đây đều có nguồn tải chính thức và ghi rõ giấy phép.
Giáo trình lập trình Python nào nên đọc năm 2026?
Bảng dưới đây gom 6 tài liệu miễn phí mà bạn đọc hợp pháp được trên trang của tác giả hoặc của trường. Cột "Cập nhật" ghi mốc cập nhật mới nhất mà mình tìm thấy vào ngày 18/10/2026.
Tài liệu | Bản Python | Cập nhật | Bài tập, lời giải | Hợp với ai |
|---|---|---|---|---|
Python Tutorial (PSF) | 3.14.8 | 17/10/2026 | không có bài tập | đã biết một ngôn ngữ lập trình khác |
Think Python bản 3 | Python 3, chạy trên Colab | repo GitHub cập nhật 16/10/2026 | có, lời giải ở repo riêng | chưa từng lập trình |
chương cài đặt dùng 3.13 | bản 3 | câu hỏi luyện tập, đáp án ở phụ lục B | dân văn phòng muốn tự động hóa công việc | |
ví dụ đã nâng lên 3.12 | 01/01/2024 | bài tập cuối chương, chấm tự động khi đăng nhập py4e.com | thích học kèm video, muốn làm về dữ liệu | |
CS50P (Harvard) | Python 3 | bộ bài tập năm 2022 | problem set chấm bằng check50 | muốn bài tập có máy chấm |
Python 3 | học kỳ Fall 2022 | finger exercise, problem set | muốn có nền tảng khoa học máy tính |
Cả 6 tài liệu đều bằng tiếng Anh. Tài liệu tiếng Việt nằm ở mục sau.
Python Tutorial trên docs.python.org có hợp cho người mới không?
Không hẳn. Khung Tip ngay đầu trang ghi rõ tutorial này viết cho người đã biết lập trình và mới chuyển sang Python, không dành cho người mới học lập trình. Ảnh dưới đây chụp trang tutorial bản 3.14.8. Dòng cuối trang ghi ngày cập nhật là 17/10/2026.

Tutorial có 16 chương, từ dùng Python như máy tính bỏ túi đến class, môi trường ảo và thư viện chuẩn. Tutorial không có bài tập. Mình dùng tutorial như sách tra cứu: học xong phần list ở sách khác thì mở chương 5 Data Structures để đọc thêm cho đủ. Lưu ý: đường dẫn docs.python.org/3/ nay đã trỏ sang bản 3.15. Nếu bạn cài 3.14 thì mở docs.python.org/3.14/ để tài liệu khớp với máy.
Think Python bản 3 có gì?
Đây là sách của Allen B. Downey, bản 3 do O'Reilly in. Bản online cho đọc miễn phí theo giấy phép CC BY-NC-SA 4.0. Mỗi chương là một Jupyter notebook mở được trên Google Colab, nên bạn không cần cài gì. Lời giải bài tập nằm ở repo ThinkPythonSolutions trên GitHub.

Mình tải notebook chương 1 và 2 từ GitHub rồi chạy từng cell trên Python 3.14.7. Hai chương có 99 cell: 79 cell chạy không lỗi, 12 cell báo lỗi đúng chỗ sách cố ý viết sai để dạy cách đọc thông báo lỗi, còn 8 cell mình bỏ qua vì là lệnh riêng của Jupyter hoặc hàm vẽ sơ đồ của sách.
Automate the Boring Stuff và Python for Everybody khác nhau thế nào?
Sách Automate the Boring Stuff của Al Sweigart được đăng miễn phí trên automatetheboringstuff.com theo giấy phép CC BY-NC-SA 3.0. Nửa đầu sách dạy Python căn bản. Nửa sau dùng Python cho việc văn phòng: đổi tên hàng loạt file, sửa file Excel, Word, PDF và gửi email. Chương cài đặt của bản 3 hướng dẫn cài Python 3.13. Cuối mỗi chương có câu hỏi luyện tập.
Python for Everybody của Charles Severance (Đại học Michigan) thiên về xử lý dữ liệu: đọc file, lấy dữ liệu từ web và API, làm việc với cơ sở dữ liệu. Bản PDF 241 trang tải miễn phí ở py4e.com, theo giấy phép CC BY-NC-SA 3.0. Phần lịch sử in ghi lần cập nhật gần nhất là ngày 01/01/2024, khi tác giả nâng các ví dụ lên Python 3.12. Khi đăng nhập py4e.com, bạn có sổ điểm và bài tập được chấm tự động, đều miễn phí.
CS50P và MIT 6.100L có phải giáo trình không?
Hai tài liệu này là khóa học mở của trường đại học. Cả hai đều có video, slide, code bài giảng và bài tập, nên bạn dùng thay giáo trình được. CS50P của Harvard có problem set được chấm bằng lệnh check50. Đường dẫn bài tập vẫn là cs50/problems/2022/python, tức là bộ bài tập năm 2022. MIT 6.100L là tài liệu của học kỳ Fall 2022. Trang khóa học ghi khóa này dành cho sinh viên chưa biết hoặc mới biết chút ít về lập trình. Cả hai khóa đều phát hành theo giấy phép CC BY-NC-SA 4.0.
Có giáo trình Python tiếng Việt miễn phí không?
Có, nhưng phần lớn đã cũ. Theo file cấu hình dựng tài liệu của Python, tài liệu chính thức có 18 bản dịch và không có bản tiếng Việt nào.
Bản dịch đầy đủ nhất mình tìm được là Bài chỉ dẫn Python trên vithon.org, do Nguyễn Thành Nam, Lê Hồng Việt và Lương Trọng Đức của nhóm Python cho người Việt dịch từ tutorial chính thức. Bản dịch làm rất kỹ và dùng thuật ngữ dễ hiểu. Có điều trang bìa ghi phiên bản 2.5, ngày 19/09/2006.

Ở Đại học Cần Thơ, giảng viên Đỗ Thanh Nghị công khai bộ slide bài giảng "Ngôn ngữ lập trình" về Python trên trang web của khoa. Bản năm 2016 dài 140 slide, viết cho Python 2. Bản năm 2019 dài 74 slide và đã chuyển sang print() của Python 3. Cả hai bản đều không có bài tập, nên hợp để ôn lại sau khi bạn đã học.
Nếu bạn tải được giáo trình tiếng Việt ở đâu đó, hãy xem ngay các dòng print. Thấy print 'Hello' không có ngoặc thì tài liệu đó viết cho Python 2, giống slide dưới đây trong bản năm 2016.

Chạy ví dụ trong tài liệu cũ trên Python 3.14 thì lỗi gì?
Mình chép 9 ví dụ từ chương 3 đến chương 8 của Bài chỉ dẫn Python 2.5 và lưu thành file .py để chạy bằng Python 3.14.7. Với 8 ví dụ còn lại, mình đổi print sang print() trước khi chạy để xem phần code còn lại có chạy không. Riêng ví dụ đầu tiên giữ nguyên, vì ví dụ này dùng để thử chính lệnh print. Kết quả là 7 file báo lỗi, 2 file chạy được nhưng in ra kết quả khác sách.

Lỗi dễ gặp nhất là print không có ngoặc. Python 3.14 báo lỗi này khá rõ:
print hello
^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
Cách sửa là viết thành print(hello). Lỗi thứ hai hay gặp là raw_input, hàm nhập liệu của Python 2:
x = int(raw_input("Please enter an integer: "))
^^^^^^^^^
NameError: name 'raw_input' is not defined
Python 3 đã đổi tên hàm này thành input(). Phần lớn các lỗi còn lại thuộc cùng một kiểu: gọi hàm hoặc method mà Python 3 đã bỏ. dict.has_key() nay thay bằng toán tử in, xrange() thay bằng range() và iteritems() thay bằng items().
Mã trong tài liệu cũ | Python 3.14.7 báo | Viết lại cho Python 3 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Vì sao dòng except cũ báo lỗi lạ trên Python 3.14?
Dòng except ZeroDivisionError, detail: là cách Python 2 đặt tên cho lỗi bắt được. Với dòng này, Python 3.13.13 báo SyntaxError ngay khi đọc file, trước khi chạy bất kỳ dòng nào. Sang Python 3.14 thì thông báo lỗi đổi hẳn:
except ZeroDivisionError, detail:
^^^^^^
NameError: name 'detail' is not defined
Lý do là từ bản 3.14, PEP 758 cho phép viết nhiều loại lỗi sau except mà không cần ngoặc. Vì vậy Python 3.14 hiểu dòng trên là "bắt ZeroDivisionError hoặc một loại lỗi tên là detail". Khi chạy tới đây, Python đi tìm biến detail và không thấy. Người mới đọc thông báo này dễ tưởng mình quên tạo biến detail, trong khi cách sửa đúng là đổi dấu phẩy thành as.
Đây là bản viết lại cho Python 3, chạy trên Python 3.14.7:
try:
x = 1 / 0
except ZeroDivisionError as detail:
print('Handling run-time error:', detail)
Handling run-time error: division by zero

Vì sao code chạy được mà kết quả vẫn sai?
Ví dụ tìm số nguyên tố trong chương 4 không báo lỗi gì, nhưng in 4 equals 2 * 2.0 thay vì 4 equals 2 * 2 như sách. Trong Python 2, phép chia hai số nguyên cho ra số nguyên. Còn trong Python 3, phép / luôn cho ra số thực. Muốn chia lấy phần nguyên, bạn phải viết //. Kiểu khác biệt này nguy hiểm hơn một lỗi hiện rõ trên màn hình, vì bạn không biết mình đang học sai.
Ví dụ thứ hai nằm ở chương 7: sách ghi repr(0.1) cho ra '0.10000000000000001', còn Python 3.14 in 0.1. Từ Python 3.1, repr() in số thực ở dạng ngắn nhất mà vẫn giữ đúng giá trị, nên đoạn giải thích quanh ví dụ này trong sách cũ không còn khớp.
Khi viết lại theo cột bên phải của bảng, cả 7 ví dụ bị lỗi đều chạy được trên Python 3.14.7. Notebook của Think Python bản 3 cũng chạy ổn trên cùng máy đó:

Đọc giáo trình thế nào để không bỏ dở?
Đọc giáo trình mà không gõ code thì vài tuần là quên. Với người mới, mình hay khuyên làm theo năm việc này:
Chọn một tài liệu chính: Think Python nếu muốn hiểu nền, Automate the Boring Stuff nếu muốn làm được việc ngay.
Gõ lại mọi ví dụ thay vì copy. Mỗi lần gõ sai là một dịp tập đọc thông báo lỗi. Bài chương trình Python mẫu có 15 chương trình từ 4 đến 39 dòng để bạn gõ lại và chạy thử.
Làm bài tập trước khi xem lời giải. Chỉ mở đáp án khi đã bí quá 20 phút. Nếu cần đề để tập, bài bài tập Python có lời giải có 12 bài kèm bộ chấm tự động.
Mở sẵn Python Tutorial đúng bản Python trên máy để tra cứu khi sách chính giải thích chưa đủ.
Khi gặp đoạn code lạ trên mạng, chạy
python3 -Vđể xem máy đang dùng bản Python nào, sau đó so với bản mà tài liệu dùng.
Thứ tự học các chủ đề (biến, vòng lặp, list, hàm, file, OOP) và cách cài Python, VS Code có trong bài học Python từ số 0. Nếu chưa rõ Python dùng để làm gì, bạn đọc bài Python là gì trước.
Khi nào không nên dùng giáo trình PDF?
Khi file không ghi năm viết hoặc bản Python. Hãy mở trang đầu và tìm dòng
print. Nếu thấyprintkhông có ngoặc thì bỏ file đó.Khi bạn chưa từng gõ dòng code nào. Một notebook chạy trên Colab hay một bài học có ô gõ code dễ bắt đầu hơn một file PDF 200 trang.
Khi file nằm trên trang chia sẻ và không rõ ai cho phép phát hành. Phần lớn giáo trình in đều có bản quyền. Còn các tài liệu mở trong bảng ở trên đều có bản đọc miễn phí do chính tác giả đăng.
Khi bạn cần người chấm bài và trả lời câu hỏi. Giáo trình chỉ có lời giải mẫu, nên lúc đó một khóa học có người chấm bài sẽ hợp hơn. Bài khóa học Python nào tốt gợi ý 9 câu bạn nên hỏi trước khi chọn khóa.
Câu hỏi thường gặp
Giáo trình Python PDF tải ở đâu hợp pháp?
Bạn nên tải từ trang của tác giả hoặc của nhà xuất bản. Python for Everybody có PDF và EPUB miễn phí ở py4e.com. Think Python và Automate the Boring Stuff có bản online đọc miễn phí trên trang của tác giả. Tài liệu chính thức của Python có bản HTML và EPUB để tải ở trang Download của docs.python.org. Trang này ghi rõ không còn cung cấp bản PDF dựng sẵn, nên các file "Python Tutorial PDF" trôi nổi trên mạng thường do ai đó tự dựng và không rõ là bản Python nào.
Có nên học theo giáo trình Python 2 không?
Không nên. Theo python.org, Python 2 đã ngừng được hỗ trợ từ ngày 01/01/2020. Phần tư duy về vòng lặp hay hàm vẫn đúng, nhưng cú pháp cũ sẽ khiến bạn mất thời gian sửa lỗi như các ví dụ trong bài này.
Nên học theo Python 3.14 hay 3.15?
Tài liệu viết cho Python 3.12 trở lên đều dùng được với cả hai. Người mới cài 3.14 hay 3.15 đều ổn. Chọn bản nào thì mở tài liệu trên docs.python.org đúng bản đó.
Có giáo trình lập trình Python bằng tiếng Việt cập nhật không?
Các tài liệu tiếng Việt miễn phí mà mình mở được đều viết trong khoảng 2006 đến 2019. Mình chưa tìm thấy giáo trình tiếng Việt miễn phí nào ghi rõ viết cho Python 3.12 trở lên. Với sách trả phí, bạn nên tìm bản đọc thử và xem sách ghi dùng bản Python nào.
Có cần đọc hết giáo trình rồi mới làm bài tập không?
Không cần. Học xong chương nào, bạn nên làm luôn bài tập của chương đó. Nếu đọc liền 10 chương rồi mới làm, bạn sẽ phải đọc lại từ đầu.
Đọc tiếp
Học Python từ số 0: lộ trình 8 chặng theo thứ tự, mỗi chặng có một đoạn code đã chạy thử trên Python 3.14.
Python là gì, dùng để làm gì: vài ví dụ ngắn để thấy Python làm được những việc gì.
Khóa học Python nào tốt: 9 câu bạn nên hỏi trước khi trả tiền cho một khóa học.
Bạn muốn một giáo trình tiếng Việt viết cho Python 3.12 trở lên, có ví dụ là những bài toán quen thuộc với người Việt? Ebook Python từ số 0 của AIDev dài 162 trang, có 51 chương trình chạy được và 52 bài tập có lời giải. Mọi ví dụ trong sách đã chạy trên Python 3.14, và bạn được đọc thử 59 trang đầu. Nếu cần thêm bài để luyện tay, ebook Bài tập Python từ số 0 có 100 bài kèm lời giải và bộ chấm tự động, cho đọc thử 115 trang.
Mình mở và đọc các tài liệu vào ngày 18/10/2026. Code chạy cùng ngày trên Mac M4 Pro, macOS 27.0.1, Python 3.14.7 (Homebrew) và Python 3.13.13. Kết quả Google cũng lấy cùng ngày tại Việt Nam, gồm 20 kết quả đầu cho mỗi từ khóa.
Chuyên mục
Học PythonTham vấn chuyên môn
Nhà sáng lập AIDev và VietPlatform · Thạc sĩ AI MSE
- Tốt nghiệp thủ khoa xuất sắc Thạc sĩ AI MSE.
- Đồng sáng lập, CTO E-University, SVOnline: số hóa 10+ đại học, 40.000+ sinh viên.
- Xây hệ thống AI cho doanh nghiệp tại VietPlatform.


