Trình biên dịch và gỡ lỗi Python online

Viết, chạy và debug Python online. Đặt breakpoint và chạy từng bước trong Server mode, hoặc sử dụng IDE với nhiều tệp, thư viện và workspace mà không cần cài đặt.

Thư viện cài đặt sẵn
🚀 4,279,640 tổng số lượt thực thi (40 trong tháng này)
Kết quả

Luyện Python với thử thách lập trình

Giải các bài tập thực tế ngay trên trình soạn thảo này: chạy kiểm thử mẫu, nộp bài và nhận đánh giá code từ AI.

Tất cả thử thách Python
Dễ

Trung Bình Của Ba Số

Tính trung bình cộng của ba số nguyên.

Bạn sẽ học Số họcPhép chia
BeginnerLearning-pathVariables
Dễ

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Bạn sẽ học Số họcGiá trị trả về
BeginnerLearning-pathVariables
Trung bình

Một thế hệ của thuật toán di truyền

Lai tạo thế hệ chuỗi bit tiếp theo bằng chọn lọc kiểu giải đấu, lai ghép một điểm và đột biến.

Bạn sẽ học Thuật toán di truyềnTìm kiếm tiến hóa
OptimizationSimulationtrí tuệ nhân tạo
Chưa có lời giải
Dễ

Bài toán máy đánh bạc nhiều tay với epsilon-greedy

Cân bằng giữa khám phá và khai thác trên bài toán multi-armed bandit bằng cách chọn hành động epsilon-greedy.

Bạn sẽ học Khám phá và khai thácBandit
Học tăng cườngtrí tuệ nhân tạohọc máy
Chưa có lời giải
Dễ

Phân phối trạng thái của chuỗi Markov

Lan truyền một phân phối xác suất qua ma trận chuyển của chuỗi Markov trong một số bước.

Bạn sẽ học Chuỗi MarkovXác suất
Simulationtrí tuệ nhân tạomath
Chưa có lời giải
Trung bình

Lặp giá trị (Value Iteration)

Tính giá trị của từng trạng thái trong một quá trình quyết định Markov bằng cách lặp lại phép cập nhật tối ưu Bellman.

Bạn sẽ học Phương trình BellmanMDP
Học tăng cườngtrí tuệ nhân tạohọc máy
Chưa có lời giải
Trung bình

Cập nhật Q-learning

Áp dụng phép cập nhật Q-learning cho một chuỗi trải nghiệm và xem phần thưởng lan ngược về các trạng thái trước.

Bạn sẽ học Q-learningPhần thưởng chiết khấu
Học tăng cườngtrí tuệ nhân tạohọc máy
Chưa có lời giải
Trung bình

Cắt tỉa Alpha-Beta

Đánh giá cây trò chơi bằng minimax có cắt tỉa alpha-beta và đếm xem việc tìm kiếm thực sự xét bao nhiêu lá.

Bạn sẽ học Cắt tỉa alpha-betaTìm kiếm trò chơi
RecursionTreestrí tuệ nhân tạo
Chưa có lời giải
Trung bình

Cờ ca-rô 3×3 với Minimax

Chọn nước đi hoàn hảo trong cờ ca-rô 3×3 bằng cách duyệt toàn bộ cây trò chơi với minimax.

Bạn sẽ học MinimaxCây trò chơi
Recursiontrí tuệ nhân tạo
Chưa có lời giải
Trung bình

Lấy mẫu với temperature và top-k

Chọn token tiếp theo như mô hình ngôn ngữ: giữ k logit cao nhất, áp dụng temperature rồi lấy mẫu.

Bạn sẽ học Sinh văn bảnLấy mẫu
trí tuệ nhân tạohọc máy
Chưa có lời giải
Khó

Self-attention nhiều đầu (multi-head)

Chiếu đầu vào thành query, key và value, chạy attention song song ở nhiều đầu, rồi kết hợp lại.

Bạn sẽ học Multi-head attentionPhép chiếu ma trận
trí tuệ nhân tạohọc máy
Chưa có lời giải
Trung bình

Chuẩn hóa theo lớp (layer normalization)

Chuẩn hóa mỗi hàng về trung bình 0 và phương sai 1, rồi co giãn và dịch chuyển, như mọi khối Transformer.

Bạn sẽ học Layer normTransformer
Mạng nơ-rontrí tuệ nhân tạohọc máy
Chưa có lời giải

🐍 Về Trình Thực Thi Python Trực Tuyến này

CodeUtility Python Executor cho phép bạn viết, chạy và kiểm thử mã Python trực tiếp trên trình duyệt - không cần cài đặt hay thiết lập gì. Công cụ được vận hành trong một sandbox an toàn, hỗ trợ các phiên bản Python thật từ 3.10 đến 3.13.

Dù bạn đang học Python lần đầu, thử các đoạn mã ngắn, hay gỡ lỗi logic, công cụ này mang đến một môi trường code nhanh, không bị xao nhãng. Bạn có thể thoải mái thử nghiệm và xem kết quả ngay trong console tích hợp.

Rất phù hợp cho người mới bắt đầu, sinh viên và lập trình viên cần một IDE trực tuyến gọn nhẹ để luyện tập Python hoặc dựng prototype nhanh.

Không chỉ là công cụ chạy mã

Sử dụng trình soạn thảo nhiều tệp, terminal thực thi biệt lập, thư viện riêng theo môi trường chạy, không gian làm việc lâu dài, tính năng chia sẻ và cộng tác theo thời gian thực ngay trong cùng một trình thực thi.

Cách sử dụng trình thực thi này?

Chọn môi trường chạy, mở hoặc tạo tệp, viết mã rồi nhấn Chạy. Kết quả xuất hiện trong terminal; người dùng đã đăng nhập có thể lưu tệp trong không gian làm việc, cài thư viện và cộng tác qua liên kết chia sẻ.

  1. Chọn phiên bản rồi chỉnh sửa tệp hiện tại hoặc mở một tệp khác trong không gian làm việc.
  2. Chạy mã, nhập dữ liệu trong terminal khi được yêu cầu và xem lại lịch sử chạy đã lưu.
  3. Sử dụng thư viện, công cụ không gian làm việc, chia sẻ và trò chuyện khi tác vụ cần nhiều hơn một đoạn mã.

💡 Kiến thức cơ bản về Python & Ví dụ bạn có thể thử ở trên

1. Khai báo Biến và Hằng số

Python là ngôn ngữ kiểu động, nên bạn không cần khai báo kiểu tường minh. Không có từ khóa hằng số tích hợp, nhưng theo quy ước, hằng số được viết IN HOA.

# Biến
x = 10
pi = 3.14
name = "Alice"
is_active = True

# Hằng số (theo quy ước)
MAX_USERS = 100
APP_NAME = "CodeUtility"

# Hằng số vẫn có thể gán lại (không bị cưỡng chế)
MAX_USERS = 200  # ⚠️ Về mặt kỹ thuật thì được phép, nhưng không khuyến khích

2. Câu điều kiện

Điều khiển luồng với các khối if, elif, và else. Trong Python 3.10+, bạn cũng có thể dùng match-case như một lựa chọn thay thế cho switch-case.

# Cấu trúc if-elif-else truyền thống
x = 2
if x == 1:
    print("Một")
elif x == 2:
    print("Hai")
else:
    print("Khác")

Cách khác: match-case (Python 3.10+)

# Cần Python 3.10+
x = 2
match x:
    case 1:
        print("Một")
    case 2:
        print("Hai")
    case _:
        print("Khác")

3. Vòng lặp

for dùng để lặp qua các chuỗi/collection, while chạy miễn là điều kiện đúng.

for i in range(3):
    print(i)

count = 3
while count > 0:
    print(count)
    count -= 1

4. Danh sách

List là tập hợp có thứ tự và có thể thay đổi. Bạn có thể truy cập phần tử theo chỉ số.

fruits = ["apple", "banana"]
print(fruits[0])
print(len(fruits))

5. Thao tác với List

Thêm, xóa, cắt (slice), và đảo list. List comprehension cho phép duyệt gọn hơn.

fruits.append("cherry")
fruits.insert(1, "kiwi")
fruits.remove("banana")
fruits.pop()

print(fruits[1:3])
print(fruits[::-1])

squares = [x*x for x in range(5)]

6. Nhập/Xuất Console

Dùng input() để đọc từ người dùng và print() để hiển thị kết quả.

Bạn có thể in nhiều dòng bằng \n (ký tự xuống dòng) hoặc gọi print() nhiều lần.

# Đọc input
name = input("Nhập tên của bạn: ")
print("Xin chào", name)

# In nhiều dòng
print("Dòng 1\nDòng 2\nDòng 3")

# Hoặc dùng nhiều lệnh print
print("Dòng A")
print("Dòng B")
print("Dòng C")

7. Hàm

Hàm giúp tổ chức mã và tái sử dụng. Dùng tham số và giá trị trả về.

def greet(name):
    return "Xin chào " + name

print(greet("Alice"))

8. Từ điển (Dictionary)

Lưu trữ các cặp khóa-giá trị. Khóa là duy nhất và giá trị được truy cập qua khóa.

person = {"name": "Bob", "age": 25}
print(person["name"])
print(person.get("email", "Không được cung cấp"))

9. Xử lý ngoại lệ

Dùng try và except để bắt và xử lý lỗi một cách nhẹ nhàng.

try:
    x = 1 / 0
except ZeroDivisionError:
    print("Không thể chia cho 0")

10. Đọc/Ghi tệp

Đọc và ghi tệp bằng open().

with open("data.txt", "w") as f:
    f.write("Xin chào Thế giới")

with open("data.txt", "r") as f:
    print(f.read())

11. Xử lý chuỗi

Chuỗi trong Python có nhiều phương thức mạnh như strip(), replace() và split().

text = "  Xin chào Thế giới  "
print(text.strip())
print(text.upper())
print(text.replace("Xin chào", "Chào"))
print(text.split())

12. Lớp & Đối tượng

Định nghĩa các bản thiết kế tái sử dụng bằng class. Dùng __init__ để khởi tạo đối tượng.

class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        return "Xin chào, tôi là " + self.name

p = Person("Alice")
print(p.greet())

🐞 Cách gỡ lỗi code Python online

Dùng trình gỡ lỗi Python online để tìm lỗi logic mà không cần cài Python hoặc IDE. Debugger chạy bằng Python 3.10–3.13 thực trong Server mode.

  1. Chọn một phiên bản Python chạy trên server.
  2. Nhấp cạnh số dòng để đặt một hoặc nhiều breakpoint.
  3. Chọn Debug để chạy chương trình và dừng tại breakpoint đầu tiên phù hợp.
  4. Kiểm tra dòng hiện tại và các biến, sau đó dùng Continue, Step Over, Step Into hoặc Step Out.
  5. Chọn Stop để kết thúc phiên debug.

Hãy bắt đầu với ví dụ nhỏ có thể tái hiện lỗi và đặt breakpoint ngay trước khi giá trị trở nên không đúng. Server mode cũng hỗ trợ file trong workspace và thư viện đã cài.