-
Trình Thực Thi
Trình biên dịch Python Trình biên dịch C++ Trình biên dịch C Trình biên dịch Matplotlib Trình thông dịch Node.js Trình thông dịch PHP Trình biên dịch C# / .NET Trình biên dịch Rust Ruby Interpreter Trình biên dịch Java Trình biên dịch Go Trình biên dịch Kotlin Trình biên dịch Swift Trình biên dịch TypeScript
-
Học lập trình
Trung tâm học Python Ví dụ chạy được, NumPy, pandas và nhiều nội dung khác Trung tâm học C và C++ Con trỏ, bộ nhớ, STL và C++ hiện đại Trung tâm học C#C# cơ bản, OOP, LINQ, async và bài tập .NET Thuật toán Python Tìm kiếm, sắp xếp, đệ quy và trình mô phỏng O(n) Thuật toán C và C++ So sánh cách cài đặt bằng C và C++
- Thử thách
Minimax là cách các chương trình chơi game chọn nước đi: giả sử cả hai người chơi đều chơi hoàn hảo, chấm điểm mọi ván đã kết thúc, rồi đưa điểm ngược lên cây trò chơi. Người đến lượt chọn nhánh con có điểm cao nhất cho mình.
Bàn cờ là chuỗi 9 ký tự đọc theo từng hàng (chỉ số 0-8), gồm "X", "O" hoặc "." cho ô trống. X luôn đi trước, nên đến lượt X khi hai bên có số quân bằng nhau, ngược lại là lượt O.
Chấm điểm ván đã kết thúc theo góc nhìn của người đến lượt: +1 nếu thắng, 0 nếu hòa, -1 nếu thua. Trả về ô trống có điểm minimax tốt nhất; nếu nhiều ô tốt như nhau, trả về chỉ số nhỏ nhất.
Hãy viết best_move(board).
Đầu vào
board: Một thế cờ hợp lệ, chưa ai thắng và còn ít nhất một ô trống.
Đầu ra
Trả về chỉ số (0-8) của nước đi tốt nhất.
Ràng buộc
board có đúng 9 ký tự, mỗi ký tự là X, O hoặc .
Thế cờ có thể xuất hiện trong một ván thật, chưa ai thắng và còn ít nhất một ô trống
Ví dụ
Ví dụ 1
Đầu vào:
board = "XX.OO...."
Kết quả mong đợi:
2
Giải thích
X và O mỗi bên có hai quân, nên đến lượt X. Đánh vào ô 2 hoàn thành hàng trên cùng và thắng ngay (+1).
Ví dụ 2
Đầu vào:
board = "X..OO...X"
Kết quả mong đợi:
5
Giải thích
Đến lượt X. O đang dọa hoàn thành hàng giữa ở ô 5. Mọi nước khác đều để O thắng (-1), còn chặn ở ô 5 dẫn đến hòa (0), nên đáp án là 5.
Tham khảo
-
Ví dụ 1 Chưa chạyĐầu vào:
board = "XX.OO...."Kết quả mong đợi:2Kết quả của bạn -
Ví dụ 2 Chưa chạyĐầu vào:
board = "X..OO...X"Kết quả mong đợi:5Kết quả của bạn
Có 4 kiểm tra ẩn sẽ chạy khi bạn nộp bài.
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.
🚀 4,279,692 tổng số lượt thực thi (92 trong tháng này)
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.
🐍 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ẻ.
- 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.
- 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.
- 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.
- Chọn một phiên bản Python chạy trên server.
- Nhấp cạnh số dòng để đặt một hoặc nhiều breakpoint.
- Chọn Debug để chạy chương trình và dừng tại breakpoint đầu tiên phù hợp.
- 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.
- 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.