Bỏ qua đến nội dung chính
Học Python
Logo Python cạnh cửa sổ terminal so sánh cùng một dòng except cũ chạy trên Python 3.13 và Python 3.14

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 đề.

Biểu đồ phân loại 55 trang trong top 20 Google khi tìm giáo trình Python ngày 18/10/2026: 21 bài tổng hợp, 18 file PDF tải lên lại, 7 bài của trung tâm, 5 trang Facebook, YouTube, Shopee, 4 trang trường đại học, không trang nào của docs.python.org

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

Automate the Boring Stuff bản 3

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

Python for Everybody

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

MIT 6.100L

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.

Trang The Python Tutorial bản 3.14.8 trên docs.python.org, khung Tip ghi tutorial dành cho lập trình viên mới đến với Python, không dành cho người mới học lập trình

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.

Trang Think Python bản online giới thiệu sách nhập môn Python cho người chưa từng lập trình, kèm bìa bản 3 của O'Reilly, link mua bản in và link sang Green Tea Press

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.

Trang bìa Bài chỉ dẫn Python trên vithon.org: tác giả Guido van Rossum, nhóm Python cho người Việt dịch, phiên bản 2.5, ngày 19 tháng 09 năm 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.

Slide 9 trong bản năm 2016 của bài giảng Ngôn ngữ lập trình, Đại học Cần Thơ: chương trình hello.py viết print 'Hello World!' không có ngoặc, đúng cú pháp Python 2

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.

Terminal chạy 5 ví dụ của Bài chỉ dẫn Python 2.5 trên Python 3.14.7: SyntaxError vì print thiếu ngoặc, NameError với raw_input và xrange, AttributeError với has_key và với sort trên dict_keys

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õ:

text
    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:

text
    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

print hello

SyntaxError: Missing parentheses in call to 'print'

print(hello)

raw_input("...")

NameError: name 'raw_input' is not defined

input("...")

tel.has_key('jack')

AttributeError: 'dict' object has no attribute 'has_key'

'jack' in tel

knights.iteritems()

AttributeError: ... no attribute 'iteritems'

knights.items()

xrange(1, 10, 2)

NameError: name 'xrange' is not defined. Did you mean: 'range'?

range(1, 10, 2)

keys = d.keys(); keys.sort()

AttributeError: 'dict_keys' object has no attribute 'sort'

keys = sorted(d)

except ZeroDivisionError, detail:

NameError: name 'detail' is not defined

except ZeroDivisionError as detail:

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:

text
    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:

python
try:
    x = 1 / 0
except ZeroDivisionError as detail:
    print('Handling run-time error:', detail)
text
Handling run-time error: division by zero
Terminal so sánh cùng một dòng except ZeroDivisionError, detail trên hai bản: Python 3.13.13 báo SyntaxError multiple exception types must be parenthesized, còn Python 3.14.7 báo NameError name detail is not defined

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 đó:

Terminal Python 3.14.7: notebook chương 1 và 2 của Think Python bản 3 chạy 79 cell không lỗi, các ví dụ cũ viết lại bằng print(), in, items, range, except as và sorted cũng chạy không lỗi

Đọ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:

  1. 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.

  2. 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ử.

  3. 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.

  4. 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 đủ.

  5. 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ấy print khô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

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 Python

Tham vấn chuyên môn

Nguyễn Việt Chung

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.
Biên soạn: AIDev Team · Rà soát · Quy trình biên tập