Toán tử 3 ngôi trong python và cách rút gọn lệnh điều kiện | Laptrinhcanban.com

Toán tử 3 ngôi trong python và cách rút gọn lệnh điều kiện

Hướng dẫn cách sử dụng toán tử 3 ngôi trong python. Bạn sẽ học được khái niệm toán tử 3 ngôi trong python là gì, cách viết cơ bản cũng như cách sử dụng toán tử 3 ngôi với câu lệnh if trong python sau bài học này.

Toán tử 3 ngôi trong python là gì

Toán tử 3 ngôi trong python là một toán tử được cấu tạo bởi ba đối số gồm điều kiện, kết quả khi điều kiện đúngkết quả khi điều kiện sai. Kết quả ở đây có thể là một giá trị được trả về, cũng có thể là một xử lý sẽ thực hiện sau đó tùy thuộc vào điều kiện chỉ định là đúng hay sai.
Toán tử 3 ngôi trong python cho phép chúng ta kiểm tra một điều kiện nào đó trong một dòng code duy nhất, thay vì phải sử dụng nhiều câu lệnh if-else, giúp cho việc code đơn giản và thông minh hơn.

Toán tử 3 ngôi trong python

Sử dụng toán tử 3 ngôi trong python với lệnh if else

Chúng ta sử dụng toán tử 3 ngôi trong python với lệnh if else bằng hai cách sau đây:

Sử dụng toán tử 3 ngôi trong python để chuyển đổi giá trị theo điều kiện

Chúng ta sử dụng toán tử 3 ngôi trong python để chuyển đổi giá trị theo điều kiện với cú pháp sau đây:

(true_value) if (condition) else (false_value);

Trong đó conditionđiều kiện, true_valuegiá trị trả về khi điều kiện đúngfalse_valuegiá trị trả về khi điều kiện sai.

Ví dụ, chúng ta kiểm tra một số có bằng 10 hay không như sau:

Cách viết thông thường

if n == 10:
x = "OK"
else :
x = "NG"

Cách dùngToán tử 3 ngôi

x = "OK" if n == 10 else "NG"

Một ví dụ khác, chúng ta kiểm tra một số là chẵn hay lẻ trong python như sau:
Cách viết thông thường

x = 101
if x % 2 == 0 :
s = 'chẵn'
else:
s = 'lẻ'
print(s) # lẻ

Cách dùngToán tử 3 ngôi

x = 101
s = 'chẵn' if x % 2 == 0 else 'lẻ'
print(s) # lẻ

Sử dụng toán tử 3 ngôi trong python để chuyển đổi xử lý theo điều kiện

Chúng ta sử dụng toán tử 3 ngôi trong python để chuyển đổi xử lý theo điều kiện với cú pháp sau đây:

(true_expression) if (condition) else (false_expression);

Trong đó conditionđiều kiện, true_expressionxử lý thực hiện khi điều kiện đúngfalse_expressionthực hiện khi điều kiện sai.

Ví dụ, cũng với bài toán tìm số chẵn số lẻ, chúng ta kiểm tra số đã cho là chẵn hay lẻ và dùng toán tử 3 ngôi để thực hiện các xử lý in ra màn hình tùy trường hợp như sau:

a = 1
print('chẵn') if a % 2 == 0 else print('lẻ')
# lẻ

Một ví dụ khác, chúng ta nhân số đã cho với các số khác nhau tùy thuộc số đó chẵn hay lẻ như sau:

Cách viết thông thường

a = 1
if a % 2 == 0:
result = a * 2
else:
result = a * 3
print(result) # 3

Cách dùngToán tử 3 ngôi

a = 1
result = a * 2 if a % 2 == 0 else a * 3
print(result) # 3

Lại nữa, bạn có thể sử dụng toán tử 3 ngôi trong câu lệnh if else kèm với các toán tử logic (and, or) như sau:

a = -2
result = 'số âm hoặc chẵn' if a < 0 and a % 2 == 0 else 'số dương hoặc lẻ'
print(result) #số âm hoặc chẵn

a = 1
result = 'số âm và chẵn' if a < 0 and a % 2 == 0 else 'số dương và lẻ'
print(result) # số dương và lẻ

Sử dụng toán tử 3 ngôi trong python với lệnh if elif else

Mặc dù không có cách viết nào được chuẩn bị riêng để chúng ta sử dụng toán tử 3 ngôi trong python với lệnh if elif else và viết lệnh này chỉ trên một dòng, nhưng bằng cách biến tấu và sử dụng lồng toán tử 3 ngôi, chúng ta hoàn toàn có thể làm được điều này.

Cú pháp chúng ta sử dụng với toán tử 3 ngôi lúc này sẽ là:

A if (condition1) else B if (condition2) else C;

Cú pháp trên được dịch ra thành hai toán tử ba ngôi như sau:

A if condition1 else ( B if condition2 else C )

Về thứ tự ưu tiên thực hiện toán tử lúc này, python sẽ thực hiện từ toán tử 3 ngôi con trước, nghĩa là từ trong ra ngoài:

  1. Thực hiện D = ( B if condition2 else C )
  2. Sau đó thực hiện A if condition1 else

Ví dụ, chúng ta sử dụng toán tử 3 ngôi trong python với lệnh if elif else để kiểm tra một số là âm hay dương như sau:

a = -1
result = 'âm' if a < 0 else 'dương' if a > 0 else 'số 0'
print(result)
# âm

a = 0
result = 'âm' if a < 0 else 'dương' if a > 0 else 'số 0'
print(result)
# số 0

a = 1
result = 'âm' if a < 0 else 'dương' if a > 0 else 'số 0'
print(result)
# dương

Kết hợp toán tử 3 ngôi trong python với list comprehension

Đây là cách mà các lập trình viên chuyên nghiệp thường dùng để viết code trong chương trình AI, đó là kết hợp toán tử 3 ngôi trong python với list comprehension.
Bằng cách kết hợp toán tử 3 ngôi với list comprehension, chúng ta có thể tự do thay đổi giá trị các phần tử trong list, hoặc là lựa chọn xử lý tùy thuộc vào điều kiện mà chúng ta đặt ra.
Ví dụ:

l = ['even' if i % 2 == 0 else i for i in range(10)]
print(l)
# ['even', 1, 'even', 3, 'even', 5, 'even', 7, 'even', 9]

l = [i * 10 if i % 2 == 0 else i for i in range(10)]
print(l)
# [0, 1, 20, 3, 40, 5, 60, 7, 80, 9]

Tổng kết và thực hành

Trên đây Kiyoshi đã hướng dẫn bạn về cách sử dụng toán tử 3 ngôi trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.