13: Kiểu dữ liệu Boolean
Ở bài học trước, bạn đã được làm quen với kiểu dữ liệu chuỗi. Bài học này, chúng ta tiếp tục tìm hiểu thêm một kiểu dữ liệu nữa trong Python.
Kiểu dữ liệu boolean, hiểu đơn giản là kiểu dữ liệu “đúng hay sai”.
13.1 Boolean là gì?
Trong cuộc sống, bạn sẽ gặp những câu hỏi chỉ có hai cách trả lời duy nhất là: đúng hoặc sai.
Ví dụ:
- Bạn là học sinh cấp 2, đúng không?
- Đúng
Hoặc,
- 2 lớn hơn 10, đúng không?
- Sai
Trong lập trình Python, để biểu diễn cho hai trạng thái này, chúng ta dùng kiểu dữ liệu Boolean (viết tắt là bool). Nó chỉ có hai giá trị:
- True (đúng)
- False (sai)
Lưu ý: Bạn phải viết hoa chữ cái đầu (True, False), nếu viết thường (true, false) chương trình sẽ báo lỗi.
13.2 Biểu thức so sánh
Thông thường, chúng ta không tự nhiên gán giá trị True hay False cho một biến, mà kết quả này sinh ra từ các phép so sánh.
Bảng sau liệt kê một số phép so sánh:
Ví dụ
Giả định, khi bạn đang lập trình cho hệ thống đăng nhập của trường học:
ten_dang_nhap = "nguyenvanteo"
mat_khau_dung = "123456"
# Người dùng nhập vào
user_input = "123456"
# Kiểm tra mật khẩu
ket_qua = (user_input == mat_khau_dung)
print("Mật khẩu chính xác?")
print(ket_qua)
# Kết quả sẽ hiện ra True
13.3 Hàm bool() và các giá trị "rỗng"
Python có một quy tắc thú vị: Hầu như mọi giá trị đều có thể chuyển đổi sang giá trị True nếu nó có nội dung.
Ví dụ:
- bool("Hello") > True
- bool(100) > True
Bạn có thể lập trình, xuất ra giá trị để quan sát:
print(bool("Hello"))
# True
print(bool(100))
# True
Tuy nhiên, các giá trị sau đây sẽ được coi là False:
- Số 0
- Chuỗi rỗng ""
- Các danh sách rỗng [], (), {}
- Giá trị đặc biệt None
Ví dụ:
print(bool(None))
# False
print(bool(""))
#False
13.4 Bài tập và câu hỏi
Bài tập 13a. Kiểm tra độ tuổi đi xe máy
Viết chương trình yêu cầu nhập tuổi của bạn. In ra True nếu bạn đủ 18 tuổi trở lên để lái xe máy trên 50cc, ngược lại in ra False.
Đầu vào:
Ban co duoc lai xe tren 50cc khong?
Tuoi cua ban: 19
Kết quả mong đợi:
Ket qua: True
Bài tập 13b. Hệ thống đánh giá môn học
Yêu cầu người dùng nhập điểm môn Tin học. In ra kết quả kiểm tra xem điểm đó có lớn hơn hoặc bằng 5.0 hay không (để biết có đạt môn không).
Đầu vào:
Diem Tin-hoc cua ban: 6
Kết quả mong đợi:
Ket qua: Dat
Bài tập 13c. Kiểm tra tên đăng nhập
Viết chương trình yêu cầu nhập tên đăng nhập. Nếu người dùng để trống (không nhập gì cả), hãy dùng hàm bool() để in ra False. Nếu có nhập tên, in ra True.
Đầu vào:
Ten: teo
Kết quả mong đợi:
Ket qua: True
Bài tập 13d. So sánh chiều cao
Nhập vào chiều cao của hai bạn An và Bình. Hãy in ra kết quả so sánh xem An có cao hơn Bình hay không.
Đầu vào:
Chieu cao cua An: 1.50
Chieu cao cua Binh: 1.55
Kết quả mong đợi:
An cao hon Binh: False
Câu hỏi 13.1 Giá trị nào sau đây là kiểu Boolean hợp lệ trong Python?
A. true
B. "True"
C. True
D. TRUE
Câu hỏi 13.2 Kết quả của biểu thức print(10 > 9) là gì?
A. 10 > 9
B. True
C. False
D. Lỗi chương trình
Câu hỏi 13.3 Kết quả của bool("") (chuỗi rỗng) là gì?
A. True
B. False
C. None
D. Lỗi
Câu hỏi 13.4 Phép toán nào dùng để kiểm tra xem hai giá trị có “khác” nhau hay không?
A. =
B. ==
C. !=
D. <>
Câu hỏi 13.5 Đoạn mã sau in ra nội dung gì?
x = 5
y = "5"
print(x == y)
A. True
B. False
C. 5 == 5
D. Lỗi
13. The Boolean Data Type
In the previous lesson, you were introduced to the String data type. In this lesson, we will explore another fundamental data type in Python.
The Boolean data type, simply put, represents a value that is either "True" or "False."
13.1 What is a Boolean?
In real life, you often encounter questions that have only two possible answers: Yes or No (True or False).
Examples:
- Are you a middle school student? > True
- Is 2 greater than 10? > False
In Python programming, we use the Boolean data type (abbreviated as bool) to represent these two states. It has only two values:
- True
- False
Note: Python is case-sensitive. You must capitalize the first letter (True, False). Using lowercase (true, false) will result in a NameError.
13.2 Comparison Operators
Usually, we don't manually assign True or False to a variable. Instead, these values are generated as the result of comparison expressions.
The following table lists the common comparison operators:
Example
Imagine you are coding a login system for a school:
username = "nguyenvanteo"
correct_password = "123456"
# User input
user_input = "123456"
# Check if the password is correct
is_correct = (user_input == correct_password)
print("Is the password correct?")
print(is_correct)
# Output: True
13.3 The bool() Function and "Truthy/Falsy" Values
Python has an interesting rule: almost any value can be evaluated as True if it has some content.
Examples:
- bool("Hello") → True
- bool(100) → True
However, the following values are always evaluated as False:
- The number 0
- An empty string ""
- Empty collections: [], (), {}
- The special value None
print(bool(None))
# False
print(bool(""))
# False
13.4 Exercises and Quiz
Exercise 13a: Motorcycle Age Check
Write a program that asks for your age. Print True if you are 18 or older (eligible to ride a motorcycle over 50cc), otherwise print False.
Input:
Your age: 19
Expected Result:
Result: True
Exercise 13b: Grading System
Ask the user to input their Computer Science score. Print the result of checking if the score is greater than or equal to 5.0.
Input:
Your score: 6
Expected Result:
Result: True
Exercise 13c: Username Check
Write a program that asks for a username. If the user leaves it blank, use the bool() function to print False. If they enter a name, print True.
Input:
Your name: teo
Expected Result:
Result: True
Exercise 13d: Height Comparison
Input the heights of two students, An and Binh. Print the result of whether An is taller than Binh.
Input:
An: 1.50, Binh: 1.55
Expected Result:
An is taller than Binh: False
Quiz
13.1 Which of the following is a valid Boolean literal in Python?
A. true
B. "True"
C. True
D. TRUE
13.2 What is the output of print(10 > 9)?
A. 10 > 9
B. True
C. False
D. Error
13.3 What is the result of bool("") (empty string)?
A. True
B. False
C. None
D. Error
13.4 Which operator is used to check if two values are "not equal"?
A. =
B. ==
C. !=
D. <>
13.5 What does the following code print?
x = 5
y = "5"
print(x == y)
A. True
B. False
C. 5 == 5
D. Error