Chuyển đến nội dung chính

Python REPL: Hướng dẫn thực hành mã hóa tương tác

Tìm hiểu cách REPL của Python cho phép bạn chạy mã tương tác để kiểm thử, gỡ lỗi và học tập. Khám phá các lệnh thiết yếu, tùy biến và các lựa chọn thay thế nâng cao.
Đã cập nhật 5 thg 10, 2026  · 10 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Không giống các ngôn ngữ biên dịch như C++ hoặc Java, cần được dịch sang mã máy trước khi thực thi, Python được thông dịch và chạy trực tiếp các lệnh. Điều này khiến môi trường REPL trở thành lựa chọn tự nhiên để thử nghiệm, dù bạn đang kiểm thử các đoạn mã ngắn, khám phá khái niệm mới, hay gỡ lỗi từng dòng. Lợi thế của nó là được tích hợp sẵn trong mọi bản cài đặt Python, nên luôn sẵn sàng khi bạn cần.

Trong hướng dẫn này, tôi sẽ trình bày cách sử dụng môi trường Python REPL thông qua ví dụ, khám phá các tính năng của nó, và các REPL thay thế để cải thiện quy trình làm việc. Nếu bạn mới bắt đầu với Python, tôi khuyến nghị bạn học khóa Giới thiệu về Python, khóa này đề cập đến các kỹ năng như kiểu dữ liệu, danh sách, các hàm cơ bản và gói.

Python REPL là gì?

Phiên REPL là viết tắt của Read-Eval-Print Loop, mô tả bốn giai đoạn cơ bản của nó:

  • Read: Môi trường REPL đọc đầu vào của người dùng, có thể là một dòng mã hoặc một câu lệnh nhiều dòng.
  • Evaluate: Đánh giá mã, thực thi câu lệnh hoặc biểu thức và tính toán kết quả.
  • Print: Chức năng này in kết quả đánh giá ra console. Nếu mã không tạo đầu ra, như một câu lệnh gán, thì sẽ không in gì.
  • Loop: REPL lặp lại về đầu, sẵn sàng cho dòng đầu vào tiếp theo.

Các giai đoạn này hoạt động liên tục cùng nhau, tạo nên môi trường tương tác nơi bạn có thể gõ mã và xem kết quả ngay lập tức. REPL của Python hiển thị dấu nhắc chính >>> cho các câu lệnh mới và dấu nhắc phụ ... cho các dòng tiếp theo, như bên trong vòng lặp hoặc định nghĩa hàm. Với các ví dụ ở những phần dưới, chúng ta sẽ xem các dấu nhắc này hoạt động thế nào.

Các thuật ngữ "shell tương tác", "phiên trình thông dịch" và "REPL" thường được dùng thay thế cho nhau để mô tả môi trường này.

Tại sao nên dùng Python REPL

Bạn có thể dùng Python REPL cho các tác vụ sau:

Kiểm thử nhanh các đoạn mã và hàm thư viện: Bạn có thể thử ngay các đoạn mã nhỏ mà không cần tạo tệp script.

>>> import math
>>> math.sqrt(16)
4.0

Khám phá cú pháp và thử nghiệm ý tưởng: Hãy coi môi trường REPL như hộp cát cá nhân của bạn. Bạn có thể thử những điều mới như các kiểu dữ liệu, toán tử và cấu trúc điều khiển khác nhau để xem chúng hoạt động ra sao mà không lo làm hỏng một chương trình lớn hơn.

>>> [x**2 for x in range(5)]
[0, 1, 4, 9, 16]

Gỡ lỗi và kiểm tra biến: Bạn có thể dùng phiên REPL để kiểm tra giá trị và trạng thái của các biến theo từng bước, giúp dễ hiểu và xử lý sự cố hơn nhiều.

>>> x = 42
>>> type(x)
<class 'int'>
>>> x / 7
6.0

Dùng như máy tính hoặc công cụ học tập: Kết quả tức thì khiến nó hữu ích để thực hiện phép tính hoặc học các kiến thức cơ bản về Python.

>>> 10 * (5 + 2)
70

Cách bắt đầu và thoát một phiên REPL

Để bắt đầu một phiên Python REPL, mở terminal hoặc command prompt. Sau đó gõ python hoặc python3, rồi nhấn Enter. Thao tác này khởi chạy shell tương tác.

Bạn cũng có thể bắt đầu một phiên tương tác sau khi chạy script bằng cờ -i. Ví dụ, python -i calc_tax.py sẽ thực thi calc_tax.py rồi đưa bạn vào môi trường REPL với các biến của script vẫn còn trong bộ nhớ.

Để thoát REPL, bạn có thể dùng một trong các lệnh sau:

  • Gõ quit() hoặc exit()  rồi nhấn Enter.

  • Trên Unix/Linux/macOS, nhấn Ctrl+D.

  • Trên Windows, nhấn Ctrl+Z rồi nhấn Enter.

Chạy mã trong môi trường REPL

Bạn có thể chạy mã trong các phiên REPL của Python theo nhiều cách tùy độ phức tạp. Hãy xem các loại mã sau mà bạn có thể chạy trong REPL.

Câu lệnh và biểu thức đơn giản

Môi trường REPL có thể đánh giá ngay các biểu thức và câu lệnh đơn giản. Ví dụ, bạn có thể thực hiện phép toán số học, gán biến và đánh giá biểu thức Boolean. Kết quả của một biểu thức sẽ được in tự động. 

>>> 5 + 4
9
>>> name = "Allan"
>>> name
'Allan'
>>> 10 > 5
True

Nếu một câu lệnh, như gán biến, không tạo đầu ra, trình thông dịch REPL sẽ không in gì. Nếu bạn mắc lỗi, REPL sẽ phản hồi ngay bằng cách báo lỗi.

Câu lệnh phức hợp

Môi trường Python REPL cũng xử lý các câu lệnh phức hợp nhiều dòng như câu lệnh if và vòng lặp for. Nó tự động chuyển sang dấu nhắc phụ (...) sau khi bạn gõ một dòng kết thúc bằng dấu hai chấm (:) và nhấn Enter, cho biết nó đang chờ khối mã thụt dòng.

Lưu ý bạn cần tự thụt dòng mã của mình; môi trường REPL không tự động thụt dòng. Để báo hiệu kết thúc câu lệnh phức hợp, nhấn Enter trên một dòng trống.

Nối dòng tường minh và ngầm định

Bạn cũng có thể viết các câu lệnh nhiều dòng trong phiên Python REPL bằng cách nối dòng. Nối dòng tường minh dùng ký tự gạch chéo ngược \ ở cuối dòng để chỉ ra câu lệnh tiếp tục ở dòng sau. 

Nối dòng ngầm định xảy ra tự động khi mã được đặt trong dấu ngoặc tròn (), ngoặc vuông [] hoặc ngoặc nhọn {}.

In ra vs đánh giá

Tính năng tự in của REPL chỉ hoạt động với các biểu thức có giá trị trả về. Ví dụ, nếu bạn có một danh sách và thêm phần tử bằng temp.append(45), sẽ không có đầu ra nào. Để xem danh sách mới, bạn cần đánh giá tường minh biến danh sách ở dòng tiếp theo. Với các hàm trả về None, bạn cần dùng print() để xem đầu ra của chúng.

Các tính năng hữu ích của REPL

Môi trường Python REPL có một số tính năng tích hợp giúp sử dụng và học tập hiệu quả hơn. Tôi sẽ bàn về một số tính năng hữu ích mà tôi đã sử dụng.

Biến đặc biệt _

Dấu gạch dưới (_) là một biến đặc biệt trong phiên REPL, lưu kết quả của biểu thức gần nhất. Điều này hữu ích khi bạn muốn tái sử dụng kết quả mà không cần gõ lại.

Trong ví dụ dưới đây, _ lưu giá trị 30, là kết quả của biểu thức 6*5.

Công cụ phản tỉnh

Python cung cấp một số hàm tích hợp để khám phá tương tác các đối tượng và môi trường của bạn. Bảng dưới tóm tắt mục đích của mỗi hàm kèm ví dụ.

Công cụ

Mục đích

Ví dụ

dir()

Trả về danh sách tất cả tên (thuộc tính và phương thức) trong phạm vi cục bộ hiện tại hoặc của một đối tượng chỉ định.

>>> dir() hoặc >>> dir(list)

help()

Khởi chạy hệ thống trợ giúp tích hợp cho đối tượng, module hoặc hàm, hiển thị tài liệu (docstring) của nó.

>>> help(print) hoặc >>> help(math)

vars()

Trả về thuộc tính __dict__ của một đối tượng (không gian tên) dưới dạng từ điển. Hữu ích để kiểm tra đối tượng.

>>> vars(my_object)

locals()

Trả về một từ điển biểu diễn bảng ký hiệu cục bộ hiện tại (các biến trong phạm vi hiện tại).

>>> locals()

globals()

Trả về một từ điển biểu diễn bảng ký hiệu toàn cục hiện tại (các biến truy cập được ở mọi nơi).

>>> globals()

Lịch sử mã và hoàn thành bằng Tab

REPL tăng tốc việc viết mã với các tính năng lịch sử và tự động hoàn thành sau:

  • Lịch sử mã: Bạn có thể di chuyển qua các lệnh đã nhập trước đó bằng phím Mũi tên Lên và Mũi tên Xuống. Điều này cho phép nhanh chóng chạy lại, sửa đổi hoặc chỉnh sửa các dòng trước.
  • Hoàn thành bằng Tab: Hỗ trợ hoàn thành tên biến, tên module và thuộc tính đối tượng. Ví dụ, gõ impor rồi nhấn Tab sẽ tự động hoàn thành thành import, hoặc gõ str.. rồi Tab sẽ liệt kê các phương thức của chuỗi.

Phím tắt

Dưới đây là một số phím tắt phổ biến giúp điều hướng REPL hiệu quả hơn.

Phím tắt

Hành động

Ctrl+C

Ngắt lệnh đang chạy, ví dụ một vòng lặp dài, và phát sinh KeyboardInterrupt.

Ctrl+D (Unix)

Thoát REPL (tương tự quit() hoặc exit())

Ctrl+Z + Enter (Win)

Thoát REPL

Ctrl+L

Xóa màn hình (như lệnh clear), giữ dấu nhắc hiện tại ở trên cùng.

Mũi tên Lên / Xuống

Duyệt lịch sử lệnh

Ctrl+A

Di chuyển con trỏ về đầu dòng

Ctrl+E

Di chuyển con trỏ về cuối dòng

Ctrl+K

Xóa từ vị trí con trỏ đến cuối dòng

Ctrl+U

Xóa từ vị trí con trỏ đến đầu dòng

Tùy biến REPL

REPL chuẩn của Python có thể được tùy biến để phù hợp với quy trình làm việc và sở thích của bạn.

Tệp khởi động

Thiết lập biến môi trường PYTHONSTARTUP trỏ đến đường dẫn một script Python chạy tự động mỗi khi REPL khởi động. Script này có thể nhập sẵn các module thường dùng, định nghĩa hàm, hoặc thay đổi chuỗi dấu nhắc.

Ví dụ, tạo tệp ~/.pystartup với nội dung sau:

import sys, os, math, random
print("Custom REPL ready. Pre-imported: sys, os, math, random")

# Change the prompt strings
import sys
sys.ps1 = ">>> "
sys.ps2 = "... "

Nếu bạn dùng Windows, bạn có thể thiết lập biến môi trường bằng lệnh sau:

setx PYTHONSTARTUP "C:\path\to\pystartup.py"

Đầu ra phong phú với rich

Bạn có thể dùng thư viện rich để tăng cường và tô màu đầu ra trong REPL. Trước tiên cần cài module rich qua pip.

pip install rich

Sau đó bật rich bằng cách import và sử dụng trong các phiên Python REPL. Trong ví dụ dưới, tôi dùng thư viện để in từ với các màu chữ khác nhau.

Đầu ra phong phú với thư viện rich trong Python REPL.

Các lệnh REPL ví dụ để thử

Như bạn thấy, phiên REPL của Python rất dễ sử dụng. Hãy thử các lệnh sau để luyện tập kỹ năng

Lệnh

Mục đích

Đầu ra/Miêu tả

dir(str)

Phản tỉnh: Xem tất cả phương thức và thuộc tính khả dụng trên kiểu dựng sẵn str (chuỗi).

['__add__', ..., 'capitalize', 'center', 'count', 'find', ...]

help(list.append)

Tài liệu: Hiển thị docstring cho phương thức append của đối tượng list, giải thích cách nó hoạt động.

Mô tả chi tiết về list.append và các tham số của nó.

import math

Nhập một module: Tải thư viện chuẩn math.

Không có đầu ra (nhưng module đã sẵn sàng).

math.pi

Tính toán: Lấy giá trị π.

3.141592653589793

math.sin(math.pi/2)

Tính toán: Tính sin(π/2).

1.0

import random random.choice(['A', 'B', 'C'])

Thử nhanh: Chọn ngẫu nhiên một phần tử từ danh sách.

'A' (hoặc 'B' hoặc 'C')

while True: pass Ctrl+C

Xử lý lỗi/Thoát: Bắt đầu một vòng lặp vô hạn, sau đó nhấn Ctrl+C để ngắt và thoát.

^C Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyboardInterrupt

Hạn chế của môi trường REPL chuẩn

Mặc dù môi trường REPL chuẩn của Python rất tuyệt cho các tác vụ nhanh, nó thường bị hạn chế so với một IDE hiện đại. Bạn sẽ nhanh chóng nhận ra một vài tính năng còn thiếu, bao gồm:

  • Không tô sáng cú pháp: Tất cả mã của bạn hiển thị dưới dạng văn bản thuần. Điều này gây khó phân biệt nhanh các từ khóa, chuỗi và chú thích, buộc bạn phải đọc kỹ.
  • Tự động thụt dòng tối thiểu: Mặc dù nó xử lý dấu nhắc tiếp tục (...), bạn phải tự nhập đúng thụt dòng cho các câu lệnh phức hợp như khối if và for.
  • Hoàn thành mã cơ bản: Tính năng hoàn thành bằng tab tích hợp có hoạt động nhưng không cung cấp gợi ý theo ngữ cảnh, tài liệu nội tuyến, hoặc tìm mờ như các shell nâng cao.
  • Chỉnh sửa nhiều dòng kém: Việc chỉnh sửa các khối mã phức tạp, nhiều dòng khá vất vả.
  • Khi một khối đã được gửi, không thể dễ dàng chỉnh sửa hoặc gọi lại từ lịch sử.

Các REPL thay thế

Để vượt qua các hạn chế trên của trình thông dịch chuẩn, một số REPL và môi trường nâng cao xây dựng trên mô hình tương tác của Python cung cấp thêm các tính năng cải thiện năng suất và học tập. Tôi khuyến nghị thử bất kỳ lựa chọn nào dưới đây để tìm công cụ phù hợp với nhu cầu của bạn.

  • IDLE: Môi trường Python dựa trên GUI đơn giản đi kèm với chính Python. Cung cấp tô sáng cú pháp, trình soạn thảo tích hợp và trình gỡ lỗi, thân thiện với người mới bắt đầu.
  • IPython: REPL mạnh mẽ với hoàn thành bằng tab phong phú, tô sáng cú pháp, lệnh magic (các lệnh đặc biệt bắt đầu bằng %), lịch sử mở rộng và truy cập dễ dàng đến lệnh hệ thống. Được dùng rộng rãi trong khoa học dữ liệu và tính toán khoa học.
  • bpython: REPL chạy trong terminal với tô sáng cú pháp nội dòng, gợi ý tự động và truy cập nhanh tài liệu. Nhẹ nhưng tăng đáng kể tính hữu dụng so với REPL mặc định.
  • ptpython: Dành cho người dùng có kinh nghiệm, đây là REPL nâng cao với các tính năng như chỉnh sửa nhiều dòng thực sự, tô sáng cú pháp mạnh và thậm chí hỗ trợ chuột, giúp bạn kiểm soát tốt hơn trong terminal.
  • REPL trực tuyến: Các môi trường dựa trên trình duyệt như shell tương tác của Python.org và Python Morsels REPL rất phù hợp cho thử nghiệm nhanh, chia sẻ mã hoặc luyện tập khi đang di chuyển.

Kết luận

Phiên Python REPL cung cấp môi trường tương tác, nhanh chóng để thử nghiệm mã, khiến nó trở nên vô giá cho việc kiểm thử, học tập và khám phá ý tưởng. Làm chủ các tính năng tích hợp của nó sẽ cho bạn một công cụ mạnh mẽ cho các tác vụ lập trình hằng ngày. Với các quy trình phức tạp hơn hoặc tính tiện dụng được nâng cao, thử nghiệm các REPL thay thế cũng có thể cải thiện trải nghiệm mã hóa tương tác.

Để hiểu rõ hơn về Python, bạn có thể học thêm từ các lộ trình kỹ năng Nền tảng Dữ liệu với Python và Nền tảng Lập trình Python. Phiếu gợi ý Python cho người mới bắt đầu cũng rất hữu ích khi bạn muốn xem nhanh cách tách một danh sách trong Python.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Biên tập viên kỹ thuật về Khoa học dữ liệu với kinh nghiệm thực tế trong phân tích dữ liệu, trí tuệ doanh nghiệp và khoa học dữ liệu. Tôi viết nội dung thực tiễn, tập trung vào ngành về SQL, Python, Power BI, Databricks và kỹ thuật dữ liệu, dựa trên công việc phân tích trong thế giới thực. Bài viết của tôi kết nối chiều sâu kỹ thuật với tác động kinh doanh, giúp các chuyên gia chuyển đổi dữ liệu thành những quyết định vững chắc.

Câu hỏi thường gặp

Làm thế nào để khởi động Python REPL?

Mở terminal và gõ python hoặc python3, tùy hệ thống của bạn.

Làm thế nào để thoát REPL?

Gõ quit() hoặc exit(), hoặc dùng Ctrl+D trên Unix hoặc Ctrl+Z + Enter trên Windows.

Sự khác biệt giữa REPL và chạy script là gì?

REPL chạy mã tương tác từng dòng, trong khi script thực thi toàn bộ mã trong một tệp cùng lúc.

Biến _ trong REPL là gì?

_ giữ kết quả của biểu thức vừa được đánh giá gần nhất để bạn có thể tái sử dụng nhanh.

Dấu nhắc >>> và ... là gì?

>>> là dấu nhắc chính còn ... là dấu nhắc phụ cho đầu vào nhiều dòng.

Chủ đề
Python

Học Python cùng DataCamp

Khóa học

Python nâng cao

4 giờ
1.4M
Nâng cao kỹ năng Khoa học dữ liệu của bạn bằng cách tạo trực quan hóa với Matplotlib và thao tác DataFrame bằng pandas.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm