Kiểu dữ liệu Boolean và các toán tử AND OR NOT trong Python

15423

Bài viết được sự cho phép của tác giả Kien Dang Chung

Video trong bài viết

Trong các bài trước chúng ta đã làm quen với các kiểu dữ liệu số nguyên (int), số thập phân (float) và kiểu chuỗi (string). Tiếp theo, chúng ta sẽ làm quen với một kiểu dữ liệu khác là Boolean đây là kiểu dữ liệu rất quen thuộc trong Đại số Boole.

Xem thêm nhiều việc làm Python lương cao trên TopDev

Kiểu dữ liệu Boolean

Kiểu dữ liệu Boolean chỉ có hai giá trị là đúng (True) và sai (False). Trong máy tính, kiểu dữ liệu này được lưu trên 1 bit là đơn vị lưu trữ nhỏ nhất, có giá trị là 1 hoặc 0. Thông thường, các giá trị Boolean là True hoặc False không được gán trực tiếp với biến mà thông qua một phép so sánh, ví dụ:

age = 20
is_over_age = age >= 18
is_under_age = age < 18
is_twenty = age == 20

Một biểu thức so sánh sẽ trả về kết quả là dạng Boolean tức là True hay False. Chúng ta có các phép so sánh thường dùng như:

  • > Lớn hơn
  • >= Lớn hơn hoặc bằng
  • == So sánh bằng
  • < Nhỏ hơn
  • <= Nhỏ hơn hoặc bằng.
  • is so sánh hai đối tượng có bằng nhau không
  • is not: phủ định của is
  Lệnh if - elif - else trong Python

Toán tử logic

Trong Python, có thể sử dụng các toán tử Logic để tạo ra những so sánh phức tạp. Danh sách các toán tử logic bao gồm:

  • and: Trả về kết quả là True nếu cả hai vế là True, trả về False nếu 1 trong hai vế là False.
  • or: Trả về kết quả là True nếu 1 trong 2 vế là True và trả về False nếu cả hai vế là False.
  • not: đứng trước một biểu thức so sánh, trả về giá trị phủ định của biểu thức đứng sau.

Ví dụ:

age = int(input("Enter your age: "))
can_learn_programming = age > 0 and age < 150

print(f"You can learn programming: {can_learn_programming}")

Trong chương trình này, nhập vào tuổi của bạn và xem bạn có đủ tuổi để học lập trình không? Điều kiện để học lập trình là tuổi (age) lớn hơn 0 và nhỏ hơn 150.

Chúng ta có bảng kết quả khi thực hiện toán tử logic AND như sau:

Bảng kết quả toán tử logic AND

và kết quả bảng toán tử logic OR như sau:

Bảng kết quả toán tử logic OR

  Cấu trúc dữ liệu List và Tuple trong Python

Qua bảng này, chúng ta có một tóm tắt như sau:

  • OR trả về giá trị thứ nhất nếu nó đúng (True), ngược lại nó trả về giá trị thứ hai.
  • AND trả về giá trị thứ nhất nếu nó sai và ngược lại nó sẽ trả về giá trị thứ hai.

Tóm tắt này rất có ý nghĩa khi thực hiện các chương trình kiểu như sau:

name = input("Nhập tên của bạn:")
surname = input("Nhập họ của bạn:")

greeting = name or f"Mr. {surname}"
print(greeting)

Ở đây dùng toán tử OR, nếu nhập tên tức là giá trị thứ nhất là True, biểu thức name or f”Mr. {surname}” sẽ có giá trị là giá trị thứ nhất tức là chuỗi tên bạn vừa nhập vào. Nếu không nhập tên tức là giá trị thứ nhất là False, biểu thức sẽ trả về giá trị thứ hai là Mr. Họ_bạn_vừa_nhập.

Sở dĩ có kết quả như vậy là khi có các giá trị số hoặc chuỗi trong biểu thức so sánh, nó sẽ được chuyển đổi mặc định về kiểu Boolean giống như chúng ta sử dụng hàm bool(). Hàm bool() cũng như các hàm int(), str() dùng để chuyển đổi kiểu dữ liệu.

Kết quả của hàm bool() đa phần là giá trị True. Nó chỉ trả về giá trị False khi số đó là 0, 0.0 hoặc chuỗi rỗng “”.

Ví dụ:

print(bool(35))
print(bool("Rolf"))
print(bool(0))
print(bool(""))

Áp dụng tóm tắt cách sử dụng AND và OR, bạn sẽ thấy các ví dụ sau tuy đơn giản nhưng rất có ích khi biểu thức logic chứa các số và chuỗi:

print("" or "Rolf")  # in ra Rolf, vì "" là False
print("" and "Rolf")  # in ra "", bởi vì "" là False

print("Rolf" or "")  # in ra "Rolf", bởi vì "Rolf" là True
print("Rolf" and "")  # in ra "", bởi vì "Rolf" là True

Bài viết gốc được đăng tải tại allaravel.com

Xem thêm việc làm IT hấp dẫn trên TopDev