PHP
Python

Trang chủ

Toán tử logic trong Python

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
22/01/2025
9 phút đọc
Theo dõi Vietnix trên

Toán tử logic trong Python

Trong Python, toán tử logic đóng vai trò quan trọng trong việc kết hợp và đánh giá các điều kiện. Cho phép chúng ta xây dựng các biểu thức phức tạp hơn bằng cách sử dụng and, or và not. Bài viết này mình sẽ giới thiệu tổng quan về các toán tử này, cách chúng hoạt động với các giá trị Boolean, cũng như những ứng dụng mở rộng của chúng với các kiểu dữ liệu khác. 

Toán tử logic trong Python là gì?

Các toán tử logic trong Python được sử dụng để kết hợp các biểu thức Boolean (biểu thức có giá trị là đúng hoặc sai) lại với nhau, tạo thành các biểu thức điều kiện phức tạp hơn.

Toán tử Logic trong Python sử dụng để kết hợp các biểu thức Boolean lại với nhau
Toán tử Logic trong Python sử dụng để kết hợp các biểu thức Boolean lại với nhau

Nói cách khác, toán tử logic hoạt động trên các toán hạng là biểu thức Boolean để tạo ra kết quả cuối cùng cũng là giá trị Boolean. Ví dụ:

diem_thi > 8 and xep_loai == "Gioi"
so_ngay_nghi > 3 or tinh_than == "khong_tot"

Ở ví dụ này, ta thấy rằng diem_thi > 8xep_loai == "Gioi", so_ngay_nghi > 3tinh_than == "khong_tot" là các biểu thức Boolean andor chính là các toán tử logic đang hoạt động trên các biểu thức Boolean đó.

Ngoài hai giá trị True (đúng) và False (sai) quen thuộc, Python còn quy ước các giá trị sau tương đương với False:

  • None (giá trị rỗng).
  • Số 0 của tất cả các kiểu số (số nguyên, số thực,…).
  • Các chuỗi rỗng (""), tuple rỗng (()), list rỗng ([]), dictionary rỗng ({}), và set rỗng (set()). Các giá trị khác còn lại sẽ được coi là True.

Toán tử logic and trong Python

Trong Python, toán tử logic and được sử dụng để kết hợp hai biểu thức boolean (biểu thức có giá trị đúng hoặc sai). Để biểu thức kết hợp có giá trị True, cả hai toán hạng phải đồng thời là True. Nếu một trong hai, hoặc cả hai toán hạng là False, kết quả của biểu thức sẽ là False.

Bảng dưới đây tóm tắt cho bạn các trường hợp có thể xảy ra với toán tử and:

aba and b
FFF
FTF
TFF
TTT

Để dễ hình dung, ta xét một ví dụ liên quan đến việc đăng ký một khóa học:

Giả sử để đăng ký thành công một khóa học, học viên phải đáp ứng cả hai điều kiện: đã nộp học phí và đã có chứng chỉ đầu vào.

da_nop_hoc_phi = True  # Đã nộp học phí

da_co_chung_chi = False # Chưa có chứng chỉ

du_dieu_kien_dang_ky = da_nop_hoc_phi and da_co_chung_chi #Kiểm tra cả hai điều kiện

print (du_dieu_kien_dang_ky)

Toán tử logic or trong Python

Trái ngược với toán tử and, toán tử logic or trong Python sẽ trả về True nếu có ít nhất một trong các toán hạng là True. Để biểu thức kết hợp có giá trị là False, cả hai toán hạng phải cùng là False.

Bảng dưới đây tóm tắt cho bạn các trường hợp có thể xảy ra với toán tử or:

aba or b
FFF
TFT
FTT
TTT

Tiếp tục với ví dụ trên, giả sử trường hợp, học viên được chọn một trong hai cách để chứng minh mình đủ điều kiện vào lớp là hoặc đã nộp học phí, hoặc đã có chứng chỉ đầu vào thì bạn được chấp nhận vào học

da_nop_hoc_phi = True
da_co_chung_chi = False

du_dieu_kien_dang_ky = da_nop_hoc_phi or da_co_chung_chi #Chỉ cần 1 trong hai

print (du_dieu_kien_dang_ky) # In kết quả kiểm tra

Toán tử logic not trong Python

not là một toán tử một ngôi trong Python. Chức năng của not là đảo ngược trạng thái của toán hạng boolean theo sau nó. Nếu toán hạng đó là True, not sẽ biến thành False, và ngược lại, nếu toán hạng là False, not sẽ cho ra kết quả là True.

Bảng dưới đây tóm tắt cho bạn các trường hợp có thể xảy ra với toán tử not:

anot(a)
FT
TF

Chúng ta hãy tưởng tượng bạn có một công tắc đèn. Nếu công tắc đang ở trạng thái “bật” (tương ứng với True), thì toán tử not sẽ chuyển nó sang trạng thái “tắt” (tương ứng với False), và ngược lại:

cong_tac_den_bat = True
cong_tac_den_tat = not cong_tac_den_bat
print ("Trạng thái công tắc đèn sau khi dùng 'not': ", cong_tac_den_tat)

ket_qua_kiem_tra = False
ket_qua_phu_dinh = not ket_qua_kiem_tra
print ("Phủ định kết quả kiểm tra:", ket_qua_phu_dinh)

Cách trình thông dịch đánh giá toán tử logic

Khi trình thông dịch Python gặp một biểu thức dạng “x and y“, quy trình đánh giá diễn ra như sau:

  • Đánh giá x trước: Python sẽ xem xét giá trị của x trước tiên.
  • Nếu x là False: Ngay lập tức, Python sẽ trả về giá trị của x (tức là False) mà không cần quan tâm đến giá trị của y. Vì trong phép toán and, chỉ cần một toán hạng là False thì cả biểu thức đã chắc chắn là False rồi.
  • Nếu x là True: Khi này, Python mới cần đánh giá y. Kết quả trả về cuối cùng của biểu thức x and y chính là giá trị của y.
Biểu thức dạng x and y
Biểu thức dạng x and y

Tương tự, đối với biểu thức “x or y“, trình thông dịch hoạt động theo cách sau:

  • Đánh giá x trước: Python bắt đầu bằng việc xem xét giá trị của x.
  • Nếu x là True: Ngay lập tức, Python sẽ trả về giá trị của x (tức là True) mà không cần đánh giá y. Trong phép toán or, chỉ cần một toán hạng là True thì cả biểu thức đã chắc chắn là True.
  • Nếu x là False: Python lúc này mới tiếp tục đánh giá y. Kết quả trả về cuối cùng của biểu thức x or y sẽ là giá trị của y.
Biểu thức dạng x or y
Biểu thức dạng x or y

Ví dụ về toán tử logic trong Python

Toán tử logic được dùng để kết hợp hoặc đảo ngược các biểu thức điều kiện. Một số tình huống sử dụng toán tử logic sẽ được trình bày bên dưới:

Ví dụ 1: Toán tử logic với các điều kiện Boolean

Chúng ta sẽ xét một vài ví dụ với các biến và phép so sánh:

x = 10
y = 20
print("x > 0 and x < 10:",x > 0 and x < 10)
print("x > 0 and y > 10:",x > 0 and y > 10)
print("x > 10 or y > 10:",x > 10 or y > 10)
print("x%2 == 0 and y%2 == 0:",x%2 == 0 and y%2 == 0)
print ("not (x+y>15):", not (x+y>15))

Sau khi chạy đoạn code này, kết quả sẽ như sau:

x > 0 and x < 10: False

x > 0 and y > 10: True

x > 10 or y > 10: True

x%2 == 0 and y%2 == 0: True

not (x+y>15): False

Ví dụ 2: Toán tử logic với các điều kiện không phải Boolean

Toán tử logic cũng có thể được sử dụng với các toán hạng không phải kiểu boolean (ví dụ số, chuỗi). Python coi các số khác 0, và chuỗi không rỗng tương đương với True , ngược lại 0 hoặc chuỗi rỗng tương đương với False. Các quy tắc kết hợp toán tử logic vẫn giữ nguyên như trên. Ví dụ:

x = 10
y = 20
z = 0
print("x and y:",x and y)
print("x or y:",x or y)
print("z or x:",z or x)
print("y or z:", y or z)

Kết quả sẽ là:

x and y: 20

x or y: 10

z or x: 10

y or z: 20

Ví dụ 3: Toán tử logic với chuỗi và tuple

Trong ví dụ dưới đây, một biến chuỗi được xem như là True, còn một tuple rỗng được xem như False:

a="Xin chào"
b=tuple()
print("a and b:",a and b)
print("b or a:",b or a)

Sau khi chạy đoạn code này, kết quả sẽ là:

a and b: ()
b or a: Xin chào

Ví dụ 4: Toán tử logic so sánh các sequence (list)

Hai đối tượng list trong ví dụ bên dưới đều không rỗng. Do đó, x and y trả về đối tượng list thứ hai (y), còn x or y trả về đối tượng list thứ nhất (x).

x=[1, 2, 3]
y=[10, 20, 30]
print("x and y:",x and y)
print("x or y:",x or y)

Kết quả khi chạy đoạn code trên:

x and y: [10, 20, 30]

x or y: [1, 2, 3]

Lời kết

Vậy là chúng ta đã cùng nhau khám phá chi tiết về các toán tử logic trong Python, bao gồm and, or và not. Chúng ta cũng đã hiểu rõ cách trình thông dịch đánh giá các toán tử này qua nhiều ví dụ thực tế, từ điều kiện Boolean đến các kiểu dữ liệu khác như chuỗi và tuple. Hy vọng, với những kiến thức này, bạn sẽ tự tin hơn trong việc xây dựng logic và các câu lệnh phức tạp khi lập trình Python. 

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn