Rút gọn câu lệnh if Python

Python không phải là ngôn ngữ lập trình nhanh nhất hiện có, nhưng nó có thể đọc được và viết hiệu quả. Mọi người đều biết câu lệnh có điều kiện là gì, nhưng bạn có biết bạn có thể viết ______________6 câu lệnh trong một dòng mã Python không?

Sau khi đọc xong, bạn sẽ biết mọi thứ về câu lệnh If Else của Python 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 nên tránh chúng và tuân theo các câu điều kiện thông thường

Không cảm thấy như đọc?

Bạn muốn được thuê làm nhà khoa học dữ liệu?

Viết blog về khoa học dữ liệu có thực sự giúp bạn được thuê làm nhà khoa học dữ liệu không?

Cảnh báo spoiler - vâng, viết blog về khoa học dữ liệu thực sự có thể giúp bạn được tuyển dụng trong ngành. Hãy nhận biết những sản phẩm khai thác này trước khi bạn bắt đầu

Rút gọn câu lệnh if Python
Khoa học dữ liệu tốt hơnDario Radečić

Rút gọn câu lệnh if Python


Có gì sai với câu lệnh If bình thường?

hoàn toàn không có gì. Chia các câu điều kiện thành nhiều dòng mã đã là một quy ước từ lâu. Hầu hết các ngôn ngữ lập trình đều yêu cầu sử dụng dấu ngoặc nhọn và do đó, câu lệnh

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
6 dòng đơn 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 If Else trong một dòng, trước tiên chúng ta hãy tóm tắt ngắn gọn về các điều kiện thông thường

Ví dụ: bạn có thể kiểm tra xem điều kiện có đúng không bằng cú pháp sau

age = 16

if age < 18:
    print('Go home.')

Biến

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
8 nhỏ hơn 18 trong trường hợp này, do đó,
age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
9 được in ra bàn điều khiển. Bạn có thể thêm gia vị cho mọi thứ bằng cách thêm một điều kiện
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
0 sẽ được đánh giá nếu điều kiện đầu tiên là
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
1

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')

Lần này

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
8 lớn hơn 18, vì vậy
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
3 được in ra bàn điều khiển. Cuối cùng, bạn có thể thêm một hoặc nhiều điều kiện
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
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 nội dung nào đó hoàn toàn khác nếu
age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
8 nằm trong khoảng từ 16 (bao gồm) đến 18 (không bao gồm)

age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')

Biến

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
8 là 17, có nghĩa là điều kiện trong
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
4 là
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
8, do đó
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
9 được in ra bàn điều khiển

Công cụ 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ử bậc ba trong Python để đánh giá các điều kiện trong một dòng

Toán tử bậc ba trong Python

Toán tử bậc ba 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. Phải mất từ ​​3 toán hạng trở lên

  1. Giá trị nếu đúng - Một giá trị được trả về nếu điều kiện đánh giá là
    age = 17
    
    if age < 16:
        print('Go home.')
    elif 16 <= age < 18:
        print('Not sure...')
    else:
        print('Welcome!')
    8
  2. Điều kiện - Một điều kiện boolean phải được thỏa mãn để trả về giá trị nếu đúng
  3. Giá trị nếu sai - Một giá trị được trả về nếu điều kiện đánh giá là
    age = 17
    
    if age < 16:
        print('Go home.')
    elif 16 <= age < 18:
        print('Not sure...')
    else:
        print('Welcome!')
    1

Trong mã, nó sẽ trông như thế này

a if condition else b

Bạn thậm chí có thể viết logic other-if trong toán tử bậc ba của Python. Trong trường hợp đó, cú pháp thay đổi một chút

a if condition1 else b if condition2 else c

Tôi phải thừa nhậ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 một dòng (Không có Else)

Câu lệnh một dòng

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
6 chỉ có nghĩa là bạn đang xóa dòng mới và thụt đầu dòng. Bạn vẫn đang viết cùng một đoạn mã, với điểm khác biệt duy nhất là phải mất một dòng thay vì hai dòng

Ghi chú. Câu lệnh một dòng

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
6 chỉ có thể thực hiện được nếu có một dòng mã duy nhất tuân theo điều kiện. Trong bất kỳ trường hợp nào khác, hãy bọc mã sẽ được thực thi bên trong một hàm

Đây là cách chuyển đổi câu lệnh

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
6 hai dòng của chúng ta thành câu điều kiện một dòng

age = 17

if age < 18: print('Go home.')

Như trước đây,

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
8 nhỏ hơn 18 nên
age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
9 được in ra

Nếu bạn muốn in ba dòng thay vì một dòng thì sao?

def print_stuff():
    print('Go home.')
    print('.......')
    print('Now!')
    
age = 17    
    
if age < 18: print_stuff()

Các câu lệnh một dòng

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
6 trong Python khá nhàm chán. Lợi ích tiết kiệm không gian và thời gian thực xảy ra khi bạn thêm một điều kiện
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
0

💡

Bạn sẽ hưởng lợi nhiều nhất từ ​​câu lệnh một dòng

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
6 nếu bạn thêm một hoặc nhiều điều kiện
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
0

Câu lệnh If-Else một dòng

Bây giờ chúng ta hoàn toàn có thể tận dụng sức mạnh của toán tử bậc ba của Python. Đoạn mã bên dưới lưu trữ

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
9 vào một biến mới
a if condition1 else b if condition2 else c
2 nếu biến
age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
8 nhỏ hơn 18 hoặc ngược lại là
age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
3

age = 19

outcome = 'Go home.' if age < 18 else 'Welcome!'
print(outcome)

Như bạn đoán,

age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
3 được in ra bàn điều khiển khi
age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
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 gói mọi thứ bạn muốn được thực thi vào một hàm - giống như trước đây

Bây giờ bạn đã có một bức tranh rõ ràng về cách thức hoạt động của toán tử bậc ba trên câu lệnh if-else 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 hơn cho toán tử

Tuyên bố If-Elif-Else một dòng

Luôn cẩn thận khi viết nhiều điều kiện trong một dòng mã. Logic sẽ vẫn hoạt động nếu dòng dài 500 ký tự, nhưng gần như không thể đọc và duy trì dòng đó

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 in ra

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
9 nếu
age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
8 dưới 16,
a if condition1 else b if condition2 else c
9 nếu
age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
8 nằm trong khoảng từ 16 (bao gồm) đến 18 (không bao gồm) và
age = 17

if age < 18: print('Go home.')
1 ngược lại

age = 17

outcome = 'Go home.' if age < 16 else 'Not sure...' if 16 <= age < 18 else 'Welcome'
outcome

Bạn sẽ thấy

age = 17

if age < 16:
    print('Go home.')
elif 16 <= age < 18:
    print('Not sure...')
else:
    print('Welcome!')
9 được in ra bảng điều khiển, vì
age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
8 được đặt thành 17. Những gì trước đây khiến chúng tôi mất sáu dòng mã giờ chỉ cần một. Cải thiện gọn gàng và mã vẫn dễ đọc và dễ bảo trì

Bạn có thể làm gì khác với câu lệnh if một dòng? . Chúng ta 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ụ. Điều kiện một dòng cho hoạt động danh sách

Áp dụng một số logic cho 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ã

Cách viết IF và FOR trên một dòng

Bạn sẽ cần thực hiện hai thay đổi đối với toán tử bậc ba

  • Bao quanh toàn bộ dòng mã bằng dấu ngoặc _______24_______4
  • Nối mã lặp lại danh sách (_______24_______5) sau ____________0 cuối cùng

Đây là cách cú pháp chung trông như thế nào

[a if condition else b for element in array]

Điều đó không khó lắm, nhưng hãy đưa vấn đề về nhà bằng một ví dụ. Đoạn mã sau in ra

age = 17

if age < 18: print('Go home.')
7 nếu số hiện tại của một phạm vi lớn hơn 5 và
age = 17

if age < 18: print('Go home.')
8 nếu ngược lại. Các số nằm trong khoảng từ 1 đến 10 (bao gồm)

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
0
Rút gọn câu lệnh if Python
Hình ảnh 1 - If và For trong một dòng trong Python (hình ảnh của tác giả)

Bây giờ chúng ta hãy đi qua một ví dụ thực tế bổ sung

Ví dụ. Học sinh đã vượt qua kỳ thi?

Để bắt đầu, chúng ta sẽ khai báo một danh sách sinh viên. Mỗi sinh viên là một đối tượng từ điển Python có hai khóa. tên và điểm kiểm tra

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
1

Chúng tôi muốn in ra rằng học sinh đã vượt qua kỳ thi nếu số điểm là 50 điểm trở lên. Nếu điểm dưới 50 điểm, chúng tôi muốn in ra rằng sinh viên đã trượt kỳ thi

Theo cú pháp Python truyền thống, chúng tôi sẽ lặp lại thủ công từng sinh viên trong danh sách và kiểm tra xem điểm có lớn hơn 50 không

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
2
Rút gọn câu lệnh if Python
Hình 2 - Liệt kê phép lặp với cú pháp Python truyền thống (ảnh của tác giả)

Mã hoạt động, nhưng chúng tôi cần 5 dòng để thực hiện 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 thu được của mình để giảm số lượng mã xuống một dòng

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
3
Rút gọn câu lệnh if Python
Hình 3 - Điều kiện một dòng và vòng lặp với Python (ảnh của tác giả)

Các kết quả giống hệt nhau, nhưng chúng tôi có một đoạn mã ngắn hơn và gọn gàng hơn nhiều. Nó 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ử bậc ba và các vòng lặp một dòng. Bạn thường không thể có cả mã có thể đọc được và các tập lệnh Python ngắn

💡

Chỉ vì bạn có thể viết điều kiện trong một dòng, điều đó không có nghĩa là bạn nên. Khả năng đọc là một ưu tiên

Hãy xem trường hợp nào bạn nên sử dụng câu lệnh

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
6 truyền thống hơn

Hãy cẩn thận với các điều kiện một dòng

Phần kết luận

Chỉ vì mã chiếm ít không gian theo chiều dọc hơn 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 về yêu cầu đó

Đoạn mã dưới đây kiểm tra một điều kiện cho mọi điểm có thể (1-5) với điều kiện cuối cùng là ___________0 bắt đầu vào không hợp lệ. Các điều kiện cần 12 dòng mã để viết, nhưng toàn bộ đoạn mã cực kỳ dễ đọc

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
4

Theo dự kiến, bạn sẽ thấy

def print_stuff():
    print('Go home.')
    print('.......')
    print('Now!')
    
age = 17    
    
if age < 18: print_stuff()
1 được in ra 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 mã trên thành câu lệnh if-else một dòng với toán tử bậc ba

Có thể - nhưng kết quả cuối cùng lộn xộn và không thể đọc được

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
5

Đây là một ví dụ về một trường hợp cực đoan khi bạn có nhiều điều kiện mà bạn phải đánh giá. Tốt hơn hết là bạn nên sử dụng các câu lệnh

age = 19

if age < 18:
    print('Go home.')
else:
    print('Welcome!')
6 truyền thống, mặc dù chúng chiếm nhiều không gian theo chiều dọc hơn

Lấy điểm về nhà. Một toán tử bậc ba với nhiều hơn hai điều kiện chỉ là một cơn ác mộng khi viết và gỡ lỗi

Phần kết luận

Và bạn đã có nó - mọi thứ bạn cần biết về câu lệnh if-else một dòng trong Python. Bạn đã học tất cả về toán tử bậc ba và cách viết câu điều kiện bắt đầu bằng một ____0_______6 đến năm điều kiện ở giữa

Hãy nhớ giữ cho mã của bạn đơn giản. Mã dễ đọc và dễ bảo trì hơn là mã được viết tốt hơn vào cuối ngày. Chỉ vì bạn có thể nhồi nhét mọi thứ vào một dòng duy nhất, không có nghĩa là bạn nên. Bạn sẽ hối hận ngay khi cần thực hiện một số thay đổi

Một cách rõ ràng hơn để viết các điều kiện dài là 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ó mang lại câu lệnh

def print_stuff():
    print('Go home.')
    print('.......')
    print('Now!')
    
age = 17    
    
if age < 18: print_stuff()
4 được yêu thích cho Python để dễ đọc hơn và tăng tốc độ phát triển

Các bạn nghĩ gì về câu lệnh if-else một dòng trong Python?

Câu lệnh if viết tắt trong Python là gì?

Viết tắt if và if other chẳng là gì ngoài một cách viết câu lệnh if trên một dòng khi chúng ta chỉ có một câu lệnh để thực thi trong khối if và khối other.

Câu lệnh If viết tắt là gì?

Ngoài ra còn có một if other viết tắt, được gọi là toán tử bậc ba vì nó bao gồm ba toán hạng. Nó có thể được sử dụng để thay thế nhiều dòng mã bằng một dòng duy nhất.

3 loại câu lệnh điều kiện * của Python là gì?

Chúng tôi có các loại câu lệnh điều kiện khác nhau như câu lệnh if, if-else, elif, if lồng nhau và if-else lồng nhau kiểm soát việc thực thi chương trình của chúng tôi

Làm thế nào nếu Elif hoạt động trong Python?

Trong Python, elif là viết tắt của "else if" và được sử dụng khi câu lệnh if đầu tiên không đúng, nhưng bạn muốn kiểm tra một điều kiện khác. Có nghĩa là, các câu lệnh if kết hợp với các câu lệnh elif và other để thực hiện một loạt kiểm tra .