Các điều kiện dòng đơn trong Python? Đây là khi nào và khi không sử dụng chúng. Show
Python không phải là ngôn ngữ lập trình nhanh nhất ngoài kia, nhưng cậu bé có thể đọc được và hiệu quả. Mọi người đều biết những câu lệnh có điều kiện là gì, nhưng bạn có biết bạn có thể viết các câu 6 trong một dòng mã Python không? Hóa ra bạn có thể, và bạn sẽ tìm hiểu tất cả về nó ngày hôm nay.Sau khi đọc, bạn sẽ biết mọi thứ về Python nếu các câu lệnh khác trong một dòng. Bạn sẽ hiểu khi nào nên sử dụng chúng, và khi nào tốt nhất là tránh chúng và gắn bó với các tuyên bố có điều kiện thông thường. Không cảm thấy muốn đọc? Thay vào đó xem video của tôi: Bạn muốn được thuê làm nhà khoa học dữ liệu? Chạy một blog khoa học dữ liệu có thể giúp: Có thể viết blog về khoa học dữ liệu thực sự giúp bạn được thuê làm nhà khoa học dữ liệu? SPOILER ALERT - Vâng, viết blog về khoa học dữ liệu thực sự có thể khiến bạn được thuê trong ngành. Hãy nhận biết những sản phẩm bắt này trước khi bạn bắt đầu. Dario RadečićCó gì sai với câu lệnh nếu bình thường?Hoàn toàn không có gì. Tách các câu lệnh có điều kiện thành nhiều dòng mã là một quy ước cho các lứa tuổi. Hầu hết các ngôn ngữ lập trình yêu cầu sử dụng dấu ngoặc xoăn và do đó các câu lệnh 6 không phải là một tùy chọn. Các ngôn ngữ khác chỉ cho phép viết các điều kiện đơn giản trong một dòng.Và sau đó là Python. Trước khi đi sâu vào các câu lệnh khác trong một dòng, trước tiên chúng ta hãy tóm tắt ngắn về các điều kiện thông thường. Ví dụ: bạn có thể kiểm tra xem một điều kiện có đúng với cú pháp sau không:
Biến 8 nhỏ hơn 18 trong trường hợp này, do đó 9 được in vào bảng điều khiển. Bạn có thể thêm vào mọi thứ bằng cách thêm một điều kiện 0 được đánh giá nếu điều kiện đầu tiên là 1:
Lần này 8 lớn hơn 18, vì vậy 3 được in vào bảng điều khiển. Cuối cùng, bạn có thể thêm một hoặc nhiều điều kiện 4. Chúng được sử dụng để nắm bắt các trường hợp ở giữa. Ví dụ: bạn có thể in một cái gì đó hoàn toàn khác nếu 8 nằm trong khoảng từ 16 (bao gồm) và 18 (loại trừ):
Biến 8 là 17, có nghĩa là điều kiện trong 4 là 8, do đó 9 được in vào bảng điều khiển.Những thứ khá cơ bản, vì vậy chúng tôi tự nhiên không muốn dành quá nhiều dòng mã để viết nó. Hóa ra, bạn có thể sử dụng toán tử ternary trong Python để đánh giá các điều kiện trong một dòng.ternary operator in Python to evaluate conditions in a single line. Nhà điều hành ternary ở PythonMột toán tử ternary tồn tại trong một số ngôn ngữ lập trình và nó cho phép bạn rút ngắn một khối if-else đơn giản. Nó mất 3 toán hạng hoặc nhiều hơn:
Trong mã, nó sẽ trông như thế này:
Bạn thậm chí có thể viết logic khác trong nhà điều hành ternary của Python. Trong trường hợp đó, cú pháp thay đổi một chút:
Tôi phải thừa nhận - nó có vẻ hơi trừu tượng khi được viết như thế này. Bạn sẽ thấy rất nhiều ví dụ thực tế bắt đầu từ phần tiếp theo. Câu lệnh IF (không có câu lệnh khác)Một câu lệnh 6 một dòng chỉ có nghĩa là bạn đang xóa dòng mới và thụt lề. Bạn vẫn đang viết cùng một mã, với sự thay đổi duy nhất là phải mất một dòng thay vì hai.Lưu ý: Câu lệnh 6 statement is only possible if there's a single line of code following the
condition. In any other case, wrap the code that will be executed inside a function.Đây là cách chuyển đổi câu lệnh 6 hai dòng của chúng tôi thành một điều kiện đơn dòng:
Như trước đây, 8 ít hơn 18 nên 9 được in.Điều gì sẽ xảy ra nếu bạn muốn in ba dòng thay vì một? Như đã nói trước đây, thực tiễn tốt nhất là bọc mã bên trong một hàm:
Các tuyên bố 6 một dòng trong Python khá nhàm chán. Lợi ích tiết kiệm thời gian thực và không gian xảy ra khi bạn thêm điều kiện 0.💡 Bạn sẽ được hưởng lợi nhiều nhất từ các câu lệnh 6 một dòng nếu bạn thêm một hoặc nhiều điều kiện 0.Tuyên bố IF-LINE IF-ElseBây giờ chúng ta hoàn toàn có thể tận dụng sức mạnh của toán tử ternary của Python. Đoạn mã bên dưới lưu trữ 9 cho một biến mới 2 nếu 8 nhỏ hơn 18 hoặc 3 nếu không:
Như bạn đoán, 3 được in vào bảng điều khiển vì 8 được đặt thành 19. Nếu bạn muốn in nhiều dòng hoặc xử lý logic phức tạp hơn, hãy bọc mọi thứ bạn muốn được thực hiện thành một hàm - như trước đây.Bây giờ bạn có một bức tranh rõ ràng về cách toán tử Ternary hoạt động trên một câu lệnh IF-OLSE một dòng đơn giản. Chúng ta có thể thêm độ phức tạp bằng cách thêm nhiều điều kiện vào toán tử. Tuyên bố IF-ELIF-OLSE một dòngLuôn cẩn thận khi viết nhiều điều kiện trong một dòng mã. Logic vẫn sẽ hoạt động nếu dòng dài 500 ký tự, nhưng gần như không thể đọc và duy trì nó. Bạn sẽ ổn với hai điều kiện trong một dòng, vì mã vẫn dễ đọc. Ví dụ sau đây in 9 nếu 8 dưới 16, 9 nếu 8 nằm trong khoảng 16 (bao gồm) và 18 (loại trừ) và 1 nếu không:
Bạn sẽ thấy 9 được in vào bảng điều khiển, vì 8 được đặt thành 17. Những gì trước đây chúng tôi đã đưa chúng tôi sáu dòng mã bây giờ chỉ mất một. Cải thiện gọn gàng, và mã vẫn dễ đọc và bảo trì.Bạn có thể làm gì khác với các câu lệnh một dòng? Vâng, rất nhiều. Chúng tôi sẽ khám phá các điều kiện một dòng cho các hoạt động danh sách tiếp theo. Ví dụ: Các điều kiện một dòng cho các hoạt động danh sáchÁp dụng một số logic vào danh sách liên quan đến việc áp dụng logic cho mọi mục danh sách và do đó lặp lại trên toàn bộ danh sách. Trước khi nghĩ về một ví dụ trong thế giới thực, hãy xem cách bạn có thể viết một câu lệnh có điều kiện cho mọi mục danh sách trong một dòng mã duy nhất. Cách viết nếu và cho một dòngBạn sẽ cần thực hiện hai thay đổi cho toán tử ternary:
Đây là cách cú pháp chung trông như thế nào:
Nó không khó lắm, nhưng hãy lái xe về nhà với một ví dụ. Mã mã sau đây in 7 nếu số lượng hiện tại của phạm vi lớn hơn 5 và 8 nếu không. Các số nằm trong khoảng từ 1 đến 10 (bao gồm): 0Image 1 - Nếu và cho một dòng duy nhất trong Python (hình ảnh của tác giả)Image 1 - If and For in a single line in Python (image by author)Bây giờ chúng ta hãy xem qua một ví dụ trong thế giới thực bổ sung. Ví dụ: Học sinh có vượt qua kỳ thi không?Để bắt đầu, chúng tôi sẽ khai báo một danh sách các sinh viên. Mỗi học sinh là một đối tượng từ điển Python với hai khóa: tên và điểm kiểm tra: 1Chúng tôi muốn in rằng học sinh đã vượt qua kỳ thi nếu điểm số từ 50 điểm trở lên. Nếu điểm số dưới 50 điểm, chúng tôi muốn in rằng học sinh đã thất bại trong kỳ thi. Trong cú pháp Python truyền thống, chúng tôi sẽ lặp lại thủ công từng học sinh trong danh sách và kiểm tra xem điểm số lớn hơn 50: 2Image 2 - Liệt kê lặp lại với cú pháp Python truyền thống (hình ảnh của tác giả)Image 2 - List iteration with
traditional Python syntax (image by author)Mã hoạt động, nhưng chúng tôi cần 5 dòng để kiểm tra đơn giản và lưu trữ kết quả. Bạn có thể sử dụng kiến thức mới mua của mình để giảm lượng mã xuống một dòng: 3Image 3 - Có điều kiện một dòng và một vòng với Python (hình ảnh của tác giả)Image 3 - One-line conditional and a
loop with Python (image by author)Kết quả là giống hệt nhau, nhưng chúng tôi có mã ngắn hơn và gọn gàng hơn nhiều. Nó chỉ nằm trên ranh giới không thể đọc được, thường là sự đánh đổi với các toán tử ternary và các vòng lặp một dòng. Bạn thường không thể có cả mã có thể đọc và các tập lệnh Python ngắn. 💡 Chỉ vì bạn có thể viết một điều kiện theo một dòng, điều đó không có nghĩa là bạn nên làm. Khả năng đọc là một ưu tiên. Hãy xem trong trường hợp nào bạn tốt hơn với các câu 6 truyền thống.Cẩn thận với các điều kiện một dòngSự kết luậnChỉ vì mã có ít không gian thẳng đứng không có nghĩa là nó dễ đọc hơn. Bây giờ bạn sẽ thấy ví dụ hoàn hảo của tuyên bố đó. Đoạn trích dưới đây kiểm tra một điều kiện cho mọi cấp độ có thể (1-5) với điều kiện 0 cuối cùng nắm bắt đầu vào không hợp lệ. Các điều kiện mất 12 dòng mã để viết, nhưng toàn bộ đoạn trích rất dễ đọc: 4Đúng như dự đoán, bạn sẽ thấy 1 được in vào bảng điều khiển, nhưng đó không phải là điều chúng tôi quan tâm. Chúng tôi muốn dịch đoạn trích trên thành một câu lệnh if-else một dòng với toán tử ternary.Nó có thể - nhưng kết quả cuối cùng là lộn xộn và không thể đọc được: 5Đây là một ví dụ về một trường hợp cực đoan trong đó bạn có nhiều điều kiện bạn phải đánh giá. Tốt hơn là nên gắn bó với các tuyên bố truyền thống 6, mặc dù chúng có nhiều không gian thẳng đứng hơn.Take Home Point: Một nhà điều hành ternary có nhiều hơn hai điều kiện chỉ là một cơn ác mộng để viết và gỡ lỗi.: A ternary operator with more than two conditions is just a nightmare to write and debug. Sự kết luậnChỉ vì mã có ít không gian thẳng đứng không có nghĩa là nó dễ đọc hơn. Bây giờ bạn sẽ thấy ví dụ hoàn hảo của tuyên bố đó. Đoạn trích dưới đây kiểm tra một điều kiện cho mọi cấp độ có thể (1-5) với điều kiện 0 cuối cùng nắm bắt đầu vào không hợp lệ. Các điều kiện mất 12 dòng mã để viết, nhưng toàn bộ đoạn trích rất dễ đọc:Một cách thậm chí sạch hơn để viết các điều kiện dài là bằng cách sử dụng khớp mẫu cấu trúc - một tính năng mới được giới thiệu trong Python 3.10. Nó đưa tuyên bố 4 yêu quý cho Python để có thêm khả năng đọc và tốc độ phát triển.Các bạn nghĩ gì về các tuyên bố if-else một dòng trong Python? Bạn có sử dụng chúng thường xuyên hay bạn đã chuyển sang khớp mẫu cấu trúc? Hãy cho tôi biết trong phần bình luận dưới đây. Giữ liên lạc
Danh sách đọc
Chúng ta có thể viết nếu khác thành một dòng trong Python không?Trả lời: Có, chúng tôi có thể sử dụng if-else trong một dòng.Trong Python, chúng ta có thể chuyển đổi if-else thành một câu lệnh có điều kiện.Yes, we can use if-else in one line. In Python, we can convert if-else into one conditional statement.
Chúng ta có thể viết nếuCác ngôn ngữ lập trình khác như C ++ và Java có các toán tử ternary, rất hữu ích để đưa ra quyết định trong một dòng.Python không có toán tử ternary.Nhưng trong Python, chúng ta có thể sử dụng IF-Else trong một dòng và nó sẽ tạo ra hiệu ứng tương tự như toán tử ternary.
Làm thế nào để bạn viết một vòng lặp IF và cho một dòng trong một dòng?Làm thế nào để viết một vòng lặp cho một dòng mã Python duy nhất ?.. Phương pháp 1: Nếu cơ thể vòng lặp bao gồm một câu lệnh, chỉ cần viết câu lệnh này vào cùng một dòng: Đối với I trong phạm vi (10): in (i)..... Phương pháp 2: Nếu mục đích của vòng lặp là tạo danh sách, hãy sử dụng danh sách hiểu thay vào đó: bình phương = [i ** 2 cho i trong phạm vi (10)] .. Làm thế nào để bạn viết nếu điều kiện trong một dòng?Nếu 1 == 1: In ('Hi') có thể được sử dụng như thế.Và '' 'nếu 1 == 1: in (' hi ')' '' sẽ không in gì! can be just used like that. And '''if 1==1: print('hi')''' will print nothing! |