Kiểu dữ liệu bool trong Python
Trong bài học này chúng ta sẽ xem xét chi tiết cách sử dụng kiểu dữ liệu bool (Boolean) trong lập trình Python.
Đây là một kiểu dữ liệu đơn giản nhưng rất quan trọng để chuyển sang học về các cấu trúc điều khiển (if-elif-else, while, for) trong Python.
Kiểu bool trong Python
Kiểu bool (Boolean) trong Python là kiểu dữ liệu trong đó chỉ có hai giá trị True
và False
. True
và False
là hai từ khóa trong Python.
Ví dụ
>>> a = True
>>> type(a) # hàm cho biết kiểu của biến
<class 'bool'>
>>> b = False
>>> type(b)
<class 'bool'>
Nếu bạn đã học một ngôn ngữ trong họ C cần lưu ý giá trị là True/False (T và F phải viết hoa). Viết true/false là sai và sẽ bị báo lỗi như sau:
Ví dụ
>>> a = true # Python sẽ hiểu true là một biến (vốn chưa tồn tại)
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'true' is not defined
Kiểu bool là kiểu kết quả trả về của các phép so sánh trên số và chuỗi mà bạn đã học trong các bài trước:
Ví dụ
>>> a = 10; b = 5
>>> a > b
True
>>> a <= b
False
>>> a != b
True
>>> a == b
False
>>> 0 < b < a < 11 # Python cho phép viết như thế này
True
>>> a = 'Hello'; b = 'Python'
>>> a != b
True
>>> a > b
False
>>> a < b
True
>>> a == b
False
>>>
Một số phương thức của str cũng trả về giá trị bool:
Ví dụ
>>> my_string = "Hello World"
>>> my_string.isalnum() #kiểm tra xem chuỗi có chứa toàn chữ số
False
>>> my_string.isalpha() # chuỗi chứa toàn chữ cái
False
>>> my_string.isdigit() # chuỗi có chứa chứ số
False
>>> my_string.isupper() # chuỗi chứa toàn ký tự hoa
False
>>> my_string.islower() # chuỗi chứa toàn kỹ tự thường
False
>>> my_string.isspace() # chuỗi chỉ chứa khoảng tráng
False
>>> my_string.endswith('d') # kết thúc là d
True
>>> my_string.startswith('H') # bắt đầu là H
True
Chuyển đổi kiểu dữ liệu về bool
Python cho phép chuyển đổi giữa các kiểu dữ liệu khác và bool qua hàm bool() theo quy tắc sau:
- Giá trị kiểu số (số nguyên, số thực, số phức) thành giá trị True nếu số đó khác 0, và False nếu số đó bằng 0.
- Giá trị kiểu chuỗi thành giá trị False nếu đó là chuỗi rỗng (không có ký tự nào ”), và True nếu chuỗi có dù chỉ 1 ký tự.
Ví dụ
>>> zero_int = 0
>>> bool(zero_int)
False
>>> pos_int = 1
>>> bool(pos_int)
True
>>> neg_flt = -5.1
>>> bool(neg_flt)
True
>>> ans = 'true'
>>> bool(ans)
True
>>> ans = 'hello'
>>> bool(ans)
True
>>> ans = '' # chuỗi rỗng (không có ký tự nào)
>>> bool(ans)
False
>>> ans = ' ' # chuỗi này chứa 1 dấu cách
>>> bool(ans)
True
Ghi chú: Python cũng có thể chuyển đổi giá trị của các kiểu khác về bool. Ví dụ danh sách rỗng -> False, danh sách có phần tử -> True. Chúng ta sẽ học về các kiểu dữ liệu này sau.
Các phép toán trên kiểu bool
Các phép toán trên kiểu bool, còn được gọi là số học Boolean, là các phép toán logic chỉ trả về kết quả True hoặc False. Các phép toán thông dụng nhất bao gồm and
, or
, not
, ==
và !=
.
Ví dụ
>>> A = True
>>> B = False
>>> A or B
True
>>> A and B
False
>>> not A
False
>>> not B
True
>>> A == B
False
>>> A != B
True
A | B | not A | not B | A == B | A =! B | A or B | A and B |
---|---|---|---|---|---|---|---|
T | F | F | T | F | T | T | F |
F | T | T | F | F | T | T | F |
T | T | F | F | T | F | T | T |
F | F | T | T | T | F | F |
Bạn có thể ghép các phép toán trên để tạo thành biểu thức phức tạp hơn như sau:
Ví dụ
>>> A = True
>>> B = False
>>> C = False
>>> A or (C and B)
True
>>> (A and B) or C
False
Kết luận
Trong bài học này chúng ta đã xem xét chí tiết cách sử dụng kiểu dữ liệu bool trong Python. Đây là một kiểu dữ liệu đơn giản nhưng rất quan trọng để chuyển sang học về các cấu trúc điều khiển (if-elif-else, while, for) trong Python.