Câu 1Đáp án nào là giá trị bool hợp lệ?
Boolean và xây dựng điều kiện
Học Boolean và câu lệnh if trong Python: True / False, toán tử so sánh và logic and / or / not để dựng điều kiện cho code của bạn.
Boolean (bool) là gì?
Boolean (bool) là một kiểu chỉ chứa được hai giá trị: True và False. Đó là cách Python biểu diễn các trạng thái kiểu có/không hoặc đúng/sai — về cơ bản là bất cứ thứ gì có hai lựa chọn.
Giống như int xử lý số và str xử lý chuỗi, bool là kiểu chuyên biệt cho giá trị chân lý.
Không như các kiểu khác, bool chỉ giới hạn ở hai giá trị — True và False. Chính điều đó giúp nó phối hợp rất tốt với gán, so sánh và rẽ nhánh điều kiện.
True và False phải viết hoa chữ cái đầu. Viết true hoặc TRUE bạn sẽ nhận NameError.
Chúng cũng không phải chuỗi, nên đừng bọc chúng trong dấu nháy như "True" (điều đó biến chúng thành str).
# Gán giá trị bool
is_animal = True
is_human = False
print(is_animal) # True
print(is_human) # False
print(type(is_animal)) # <class 'bool'>
# Viết "True" biến nó thành str (khác hoàn toàn)
looks_bool = "True"
print(type(looks_bool)) # <class 'str'>
So sánh tạo ra boolean
Bạn không chỉ có boolean khi gõ True / False — các toán tử so sánh cũng tạo ra chúng.
Python có sáu toán tử so sánh, và mỗi toán tử luôn trả về True hoặc False (tức là bool).
| Toán tử | Ý nghĩa | Ví dụ | Kết quả |
|---|---|---|---|
| == | bằng | 5 == 5 | True |
| != | khác | 5 != 3 | True |
| > | lớn hơn | 5 > 3 | True |
| < | nhỏ hơn | 5 < 3 | False |
| >= | lớn hơn hoặc bằng | 5 >= 5 | True |
| <= | nhỏ hơn hoặc bằng | 5 <= 3 | False |
Khi một biểu thức được ước lượng, nó trả về True hoặc False. Bạn cũng có thể lưu kết quả đó vào biến và dùng lại.
age = 20
print(age == 20) # True (bằng)
print(age != 18) # True (khác)
print(age >= 18) # True (>=)
print(age < 18) # False (<)
# Bạn có thể lưu kết quả vào biến
is_adult = age >= 18
print(is_adult) # True
print(type(is_adult)) # <class 'bool'>
# Chuỗi cũng so sánh được (== và != là thông dụng nhất)
print("apple" == "apple") # True
print("apple" == "Apple") # False (phân biệt hoa thường)
= và == khác nhau
= (một dấu bằng) là phép gán, còn == (hai dấu bằng) là phép so sánh. age = 20 nghĩa là "đặt 20 vào age", còn age == 20 hỏi "age có bằng 20 không?". Nhầm lẫn hai cái này là cách dễ dàng đưa vào một bug khó phát hiện, nên hãy phân biệt rõ.
Dùng boolean trong câu lệnh if
Nơi bạn sẽ gặp boolean nhiều nhất là câu lệnh if (rẽ nhánh điều kiện). Khối bên trong chỉ chạy khi biểu thức sau if là True.
Chúng ta sẽ bàn sâu hơn về if sau — bây giờ cứ cảm nhận cách bool thay đổi hành vi.
Kết thúc dòng if bằng dấu hai chấm :, và viết thân với thụt lề 4 dấu cách. Thụt lề đó là thứ nói cho Python biết dòng nào thuộc if.
is_animal = True
# Chạy vì is_animal là True
if is_animal:
print("Là động vật")
# Bị bỏ qua vì is_human là False — không in gì
is_human = False
if is_human:
print("Là con người")
# Bạn có thể đặt phép so sánh thẳng vào if
age = 20
if age >= 18:
print("Người lớn")
Toán tử logic: and / or / not
Khi bạn muốn kết hợp nhiều điều kiện, hãy dùng các toán tử logic and / or / not.
Chúng nhận boolean làm đầu vào và trả về boolean — tương ứng với "and" (và), "or" (hoặc), "not" (không).
and là True chỉ khi cả hai vế đều True.
or là True khi có vế nào đó True.
not đảo True và False.
Bảng chân lý
Kết quả của and và or hoàn toàn được xác định bởi các boolean bên trái và bên phải. Nghĩ về chúng như giao (and) và hợp (or) sẽ dễ hình dung.
| A | B | A and B | A or B |
|---|---|---|---|
| True | True | True | True |
| True | False | False | True |
| False | True | False | True |
| False | False | False | False |
is_man = True
is_adult = True
# and: True chỉ khi cả hai True
if is_man and is_adult:
print("Đàn ông trưởng thành")
# or: True khi ít nhất một là True
if is_man or is_adult:
print("Đàn ông hoặc người lớn")
# not: đảo giá trị
is_child = not is_adult
print(is_child) # False
# Kết hợp với so sánh
age = 25
if age >= 18 and age < 65:
print("Người lớn trong độ tuổi lao động")
Đừng viết &&, ||, !
Một số ngôn ngữ khác dùng &&, || và !, nhưng Python luôn dùng and, or và not (từ tiếng Anh). Viết && sẽ cho bạn SyntaxError.
Trong bài này, bạn đã học về kiểu boolean (bool) và cách dùng nó. Bạn thấy bool chỉ chứa hai giá trị, rằng so sánh tạo ra boolean, rằng câu lệnh if cho phép rẽ nhánh dựa trên chúng, và rằng and / or / not cho phép kết hợp điều kiện — nền tảng cho mọi điều kiện bạn sẽ viết.
Tiếp theo, chúng ta sẽ tìm hiểu kỹ hơn về số với kiểu int và float.
Kiểm tra kiến thức
Hãy trả lời từng câu hỏi một.
Câu 2Đoạn code này in gì?x = 10
print(x == 10 and x < 5)
Câu 3Đoạn code này in gì?is_open = False
print(not is_open)