Bạn muốn đặt giá trị của x
thành 42
nếu boo
là True
và không làm gì khác
Hãy đi sâu vào các cách khác nhau để thực hiện điều này trong Python. Chúng tôi bắt đầu với một cái nhìn tổng quan
Bài tập. Chạy mã. Có phải tất cả các đầu ra giống nhau?
Tiếp theo, bạn sẽ đi sâu vào từng phương pháp đó và nâng cao siêu năng lực đơn lẻ của mình
Phương pháp 1. Toán tử bậc ba
Toán tử bậc ba cơ bản nhất
if else0 trả về biểu thức
x
nếu biểu thức Boolean if else2 ước tính thành
True
. Mặt khác, nếu biểu thức if else2 ước tính thành
if else5, toán tử bậc ba trả về biểu thức thay thế
if else6
if elseOperandDescriptionThe return expression of the operator in case the condition evaluates to
True
The condition that determines whether to return the or the branch.The return expression of the operator in case the condition evaluates to if else5Operands of the Ternary Operator
Hãy quay trở lại vấn đề ví dụ của chúng tôi. Bạn muốn đặt giá trị của x
thành 42
nếu boo
là True
và không làm gì khác. Đây là cách thực hiện việc này trong một dòng
x = 42 if boo else x
Trong khi sử dụng toán tử bậc ba hoạt động, bạn có thể tự hỏi liệu có thể tránh phần
x = 42 if boo else x3 để mã rõ ràng không?
Nếu bạn cần nâng cao hiểu biết về toán tử bậc ba, hãy xem video sau
Toán tử bậc ba của Python -- Và một vụ hack một lớp đáng ngạc nhiên
Xem video này trên YouTube
Bạn cũng có thể đọc bài viết liên quan
- Python Một dòng Ternary
Phương pháp 2. Câu lệnh If một dòng
Giống như phương pháp trước, bạn muốn đặt giá trị của x
thành 42
nếu boo
là True
và không làm gì khác. Nhưng bạn không muốn có một nhánh khác dư thừa. Làm thế nào để làm điều này trong Python?
Giải pháp để bỏ qua phần other của toán tử bậc ba đơn giản một cách đáng ngạc nhiên—sử dụng câu lệnh if tiêu chuẩn không có nhánh other và viết nó vào một dòng mã
if boo: x = 42
Để tìm hiểu thêm về những gì bạn có thể đóng gói thành một dòng, hãy xem video hướng dẫn của tôi “If-Then-Else in One Line Python”
If-Then-Else trong Python một dòng
Xem video này trên YouTube
Phương pháp 3. Cú pháp cú pháp Ternary Tuple Hack
Một dạng tốc ký của toán tử bậc ba là cú pháp tuple sau
cú pháp. Bạn có thể sử dụng cú pháp bộ dữ liệu
x = 42 if boo else x8 bao gồm bộ dữ liệu
x = 42 if boo else x9 và điều kiện
if else2 được đặt trong dấu ngoặc vuông. Đây là một cách trực quan hơn để biểu diễn cú pháp tuple này
[, ][]OperandDescriptionThe return expression of the operator in case the condition evaluates to
True
The condition that determines whether to return the or the branch.The return expression of the operator in case the condition evaluates to if else5Tuple Syntax of the Ternary Operator
Trên thực tế, thứ tự của toán hạng
if boo: x = 423 và
if boo: x = 424 chỉ bị đảo lộn khi so sánh với toán tử bậc ba cơ bản. Đầu tiên, bạn có nhánh được trả về nếu điều kiện KHÔNG giữ. Thứ hai, bạn chạy nhánh được trả về nếu điều kiện thỏa mãn
x = [x, 42][boo]
Tài giỏi. Điều kiện boo
được giữ nên giá trị trả về được truyền vào biến x
là nhánh
if boo: x = 424
42
Đừng lo lắng nếu điều này làm bạn bối rối—bạn không đơn độc. Bạn có thể làm rõ cú pháp tuple một lần và mãi mãi bằng cách nghiên cứu bài viết chi tiết trên blog của tôi
Bài viết liên quan. Python Ternary — Tuple Syntax Hack
Sách Python One-Liners. Làm chủ một dòng đầu tiên
Các lập trình viên Python sẽ cải thiện các kỹ năng khoa học máy tính của họ với những lời khuyên hữu ích này
Python One-Liners sẽ dạy bạn cách đọc và viết “one-liners”. tuyên bố ngắn gọn về chức năng hữu ích được gói gọn trong một dòng mã. Bạn sẽ học cách giải nén một cách có hệ thống và hiểu bất kỳ dòng mã Python nào, đồng thời viết Python được nén mạnh mẽ, hùng hồn như một chuyên gia
Năm chương của cuốn sách bao gồm [1] mẹo và thủ thuật, [2] biểu thức chính quy, [3] học máy, [4] chủ đề khoa học dữ liệu cốt lõi và [5] thuật toán hữu ích
Giải thích chi tiết về một lớp giới thiệu các khái niệm khoa học máy tính quan trọng và nâng cao kỹ năng mã hóa và phân tích của bạn. Bạn sẽ tìm hiểu về các tính năng nâng cao của Python như khả năng hiểu danh sách, cắt lớp, hàm lambda, biểu thức chính quy, hàm ánh xạ và rút gọn cũng như các bài tập cắt lát
Bạn cũng sẽ học cách
- Tận dụng cấu trúc dữ liệu để giải quyết các vấn đề trong thế giới thực, chẳng hạn như sử dụng lập chỉ mục Boolean để tìm các thành phố có ô nhiễm trên mức trung bình
- Sử dụng các khái niệm cơ bản về NumPy như mảng, hình dạng, trục, loại, phát sóng, lập chỉ mục nâng cao, cắt, sắp xếp, tìm kiếm, tổng hợp và thống kê
- Tính toán số liệu thống kê cơ bản của mảng dữ liệu đa chiều và thuật toán K-Means cho học không giám sát
- Tạo các biểu thức chính quy nâng cao hơn bằng cách sử dụng nhóm và nhóm được đặt tên, giao diện phủ định, ký tự thoát, khoảng trắng, bộ ký tự [và bộ ký tự phủ định] và toán tử tham lam/không tham lam
- Hiểu một loạt các chủ đề khoa học máy tính, bao gồm đảo chữ cái, đối xứng, siêu bộ, hoán vị, giai thừa, số nguyên tố, số Fibonacci, xáo trộn, tìm kiếm và sắp xếp theo thuật toán
Đến cuối cuốn sách, bạn sẽ biết cách viết Python ở mức tinh tế nhất và tạo ra những tác phẩm “nghệ thuật Python” ngắn gọn, đẹp mắt chỉ trong một dòng
Nhận Python One-Liners của bạn trên Amazon
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây