So sánh cho giá trị đúng hoặc sai
Biểu thức `7 > 5` cho `True`, còn `7 == 5` cho `False`. Hai kết quả thuộc kiểu `bool`. Python dùng `==` để hỏi hai giá trị có bằng nhau không; dấu `=` dùng để **gán** như `x = 7`. Có thể dùng `<`, `<=`, `>`, `>=`, `==`, `!=` khi so sánh các số theo mục đích.
Ví dụ `n = 8`; điều kiện `n % 2 == 0` là `True` vì 8 chia 2 dư 0. Nếu viết `n % 2 = 0`, đó không phải biểu thức so sánh hợp lệ. Phải đọc ý nghĩa từng dấu trước khi dự đoán nhánh sẽ chạy.
Bài luyện
Với `n = 8`, biểu thức `n % 2 == 0` có giá trị nào?
8 là giá trị n, không phải kết quả so sánh.
0 là số dư trước khi so sánh.
8 chia 2 dư 0, nên điều kiện đúng.
Điều kiện không sai vì số dư bằng 0.
Lời giải
`8 % 2` bằng 0. So sánh `0 == 0` đúng nên toàn biểu thức cho `True`.
Bài luyện
Trong Python, muốn kiểm tra `x` bằng 7 thì viết biểu thức nào?
Dấu = là gán, không hỏi bằng nhau.
Dấu == so sánh hai giá trị.
Dấu != hỏi khác nhau.
Cách viết => không là toán tử so sánh Python.
Lời giải
`x == 7` cho giá trị bool theo việc x có bằng 7 hay không. `x = 7` là lệnh gán.
Ghép điều kiện theo yêu cầu
`and` chỉ đúng khi **cả hai** điều kiện đúng; `or` đúng khi **ít nhất một** điều kiện đúng; `not` đảo đúng thành sai và ngược lại. Muốn xét điểm `diem` từ 0 đến 10, kể cả hai đầu, dùng `diem >= 0 and diem <= 10`, hoặc cách so sánh nối `0 <= diem <= 10`. Với `diem = 11`, phần `diem <= 10` sai nên cả điều kiện ghép sai. Khi có cả `and` và `or`, dùng ngoặc để người đọc thấy nhóm ý cần xét.
Bài luyện
Với `diem = 11`, điều kiện `diem >= 0 and diem <= 10` cho gì?
Vế đầu đúng chưa đủ cho and.
Đó là cách hiểu or, không phải and.
11 <= 10 sai, nên and sai.
and ghép được hai biểu thức bool.
Lời giải
`11 >= 0` đúng nhưng `11 <= 10` sai. `and` chỉ đúng khi cả hai vế đúng, nên kết quả là `False`.
Bài luyện
Điều kiện nào đúng khi `x` nằm ngoài đoạn từ 1 đến 2?
Nhỏ hơn 1 hoặc lớn hơn 2 là ở ngoài đoạn.
Một số không thể vừa nhỏ hơn 1 vừa lớn hơn 2.
Đây là điều kiện ở trong đoạn.
Hai đầu 1 và 2 thuộc đoạn, không ở ngoài.
Lời giải
Ở ngoài đoạn đóng [1; 2] có hai trường hợp: x nhỏ hơn 1 **hoặc** x lớn hơn 2; dùng `or` để ghép.
Đang học