Cách sử dụng toán tử bậc ba trong Python (Biểu thức có điều kiện)

Tìm hiểu cách viết biểu thức điều kiện (toán tử bậc ba) trong Python. So sánh các điều kiện nội tuyến với các khối if-else tiêu chuẩn.

Hãy thử Giải pháp này trong Trình chỉnh sửa

Tổng quan

Viết logic có điều kiện là một phần cốt lõi của lập trình. Bạn thường cần gán giá trị cho một biến dựa trên điều kiện đúng hay sai. Ví dụ: đặt nhãn trạng thái thành "Hoạt động" nếu người dùng trực tuyến hoặc chỉ định "Khách" nếu không cung cấp tên người dùng.

Trong khi câu lệnh `if-else` tiêu chuẩn có 4 dòng mã, Python cung cấp một cách viết tắt ngắn gọn được gọi là toán tử bậc ba hoặc biểu thức điều kiện. Nó cho phép bạn đánh giá các điều kiện và gán giá trị bên trong một dòng logic duy nhất. Cú pháp là: `value_if_true nếu điều kiện khác value_if_false`.

Toán tử bậc ba rất dễ đọc khi được sử dụng cho các đánh giá đơn giản và nó có thể được đặt trực tiếp bên trong phần hiểu danh sách, câu lệnh trả về và lệnh gọi hàm. Tuy nhiên, lồng nhiều toán tử bậc ba lại với nhau là một cách làm không tốt vì nó nhanh chóng trở nên không thể đọc được. Nếu logic điều kiện của bạn phức tạp, hãy viết các khối `if-elif-else` tiêu chuẩn.

Đầu ra mã & thực thi

Tập lệnh này minh họa việc viết các câu lệnh điều kiện nội tuyến bằng cách sử dụng toán tử ba ngôi trong Python và so sánh chúng với các khối if-else tiêu chuẩn.

status = "active"

# 1. Traditional if-else assignment
if status == "active":
    label = "System Online"
else:
    label = "System Offline"
print("Traditional label:", label)

# 2. Pythonic ternary operator assignment (Equivalent)
label_ternary = "System Online" if status == "active" else "System Offline"
print("Ternary label:", label_ternary)

# 3. Using ternary operator inside a print statement
score = 85
print(f"Result: {'Pass' if score >= 50 else 'Fail'}")
Đầu ra thiết bị đầu cuối
Traditional label: System Online
Ternary label: System Online
Result: Pass

Triển khai từng bước

  • Cấu trúc biểu thức bậc ba của bạn dưới dạng: true_value nếu điều kiện khác là false_value.
  • Sử dụng câu lệnh ternary nội tuyến bên trong các phép gán biến để giảm dấu vết mã.
  • Tránh lồng các toán tử ba ngôi (ví dụ: a if b else c if d else e) để duy trì khả năng đọc rõ ràng.

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

Các toán tử bậc ba của Python có chậm hơn các khối if-else tiêu chuẩn không?

Không, chúng có hiệu suất giống hệt nhau vì chúng biên dịch theo cùng các hoạt động mã byte. Chọn cú pháp dễ đọc nhất cho ngữ cảnh.

Tôi có thể thực thi các câu lệnh thay vì trả về các giá trị bên trong toán tử bậc ba không?

Không, toán tử ba ngôi là một biểu thức, nghĩa là nó phải đánh giá một giá trị. Bạn không thể viết các câu lệnh (như bài tập hoặc từ khóa in) bên trong các nhánh.

Chủ đề liên quan

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.