1. Khởi động (Engagement)
Trong cuộc sống, chúng ta vẫn thường gặp các tình huống một việc được thực hiện hay không phụ thuộc vào một điều kiện. Ví dụ, em dự định, nếu ngày mai trời không mưa em sẽ đi chơi cùng bạn, ngược lại nếu trời mưa em sẽ ở nhà làm bài tập.
💡 Câu hỏi suy ngẫm:
Em hãy điền thông tin vào vị trí <Điều kiện> và lệnh tương ứng trong sơ đồ cấu trúc rẽ nhánh:
- Nếu
<điều kiện>thì ... - Ngược lại thì ...
Các tình huống như vậy trong lập trình được gọi là rẽ nhánh.
2. Hình thành kiến thức (Knowledge)
1. Biểu thức logic
Trong Python, biểu thức logic là biểu thức chỉ nhận giá trị True (đúng) hoặc False (sai). Biểu thức logic đơn giản nhất là các biểu thức so sánh số hoặc xâu kí tự.
Ví dụ về biểu thức logic:
a) Các phép so sánh
Các phép so sánh các giá trị số trong Python:
| Phép toán | Ý nghĩa | Ví dụ |
|---|---|---|
< | Nhỏ hơn | a < 10 |
> | Lớn hơn | a > 5 |
== | Bằng nhau | a == 10 |
<= | Nhỏ hơn hoặc bằng | a <= 10 |
>= | Lớn hơn hoặc bằng | a >= 5 |
!= | Khác nhau | a != 5 |
Lưu ý: Với xâu kí tự cũng có đầy đủ các phép so sánh (sẽ học sau).
b) Các phép toán logic
Các phép toán trên kiểu dữ liệu logic bao gồm:
Phép and (và):
| X | Y | X and Y |
|---|---|---|
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
Phép or (hoặc):
| X | Y | X or Y |
|---|---|---|
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
Phép not (phủ định):
| X | not X |
|---|---|
| True | False |
| False | True |
Ví dụ phức hợp:
Kết nối tri thức:
- Biểu thức logic là biểu thức chỉ nhận giá trị True hoặc False.
- Giá trị các biểu thức logic thuộc kiểu bool.
- Các phép toán trên kiểu dữ liệu logic là and (và), or (hoặc) và not (phủ định).
2. Lệnh if
Để xử lí các tình huống rẽ nhánh, giống như các ngôn ngữ lập trình khác, Python cũng có các câu lệnh để mô tả cấu trúc rẽ nhánh.
a) Câu lệnh rẽ nhánh dạng thiếu
Cú pháp:
Quy tắc quan trọng:
- Sau điều kiện cần có dấu hai chấm ":"
- Nhóm, khối lệnh tiếp theo cần viết lùi vào và thẳng hàng, mặc định là 1 tab hay 4 dấu cách
Ví dụ:
b) Câu lệnh rẽ nhánh dạng đủ
Cú pháp:
Ví dụ:
c) Câu lệnh rẽ nhánh dạng đủ nhiều nhánh
Cú pháp:
3. Luyện tập (Practice)
Bài tập thực hành
Bài tập 1:
Mỗi biểu thức sau có giá trị True hay False? a) 100%4 == 0 b) 111//5 != 20 or 20%3 != 0
Bài tập 2:
Cho trước số tự nhiên n (được gán hoặc nhập từ bàn phím). Viết đoạn chương trình kiểm tra n > 0 thì thông báo "n là số lớn hơn 0".
Ví dụ giải:
Bài tập 3:
Viết chương trình nhập vào một số nguyên. Kiểm tra và in ra kết quả:
- Số đó là số dương, số âm hay số không
Bài tập 4:
Viết chương trình nhập vào điểm của học sinh. Xếp loại học lực theo quy định:
- Điểm
>=8: Giỏi - 6
<=Điểm<8: Khá - 4
<=Điểm<6: Trung bình - Điểm
<4: Yếu
Thực hành tại máy:
Thực hiện các lệnh sau và quan sát kết quả:
4. Vận dụng (Application)
Bài tập vận dụng
Bài tập 1: Kiểm tra năm nhuận
Năm n là năm nhuận nếu giá trị n thoả mãn điều kiện: n chia hết cho 400 hoặc n chia hết cho 4 đồng thời không chia hết cho 100.
Viết chương trình nhập số năm n và cho biết năm n có phải là nhuận hay không.
Gợi ý:
Bài tập 2: Giải phương trình bậc nhất
Viết chương trình nhập vào các hệ số a, b của phương trình ax + b = 0 (a ≠ 0) và tìm nghiệm của phương trình.
Gợi ý:
- Nghiệm x = -b/a
- Cần kiểm tra a != 0 trước khi tính
Bài tập 3: Tính tiền điện
Viết chương trình tính tiền điện theo quy định:
- Nếu số điện ≤ 100 kWh: đơn giá 1.500 VNĐ/kWh
- Nếu số điện > 100 kWh: phần ≤ 100 kWh tính 1.500 VNĐ/kWh, phần vượt tính 2.000 VNĐ/kWh
Thảo luận:
- Tại sao cần kiểm tra điều kiện a != 0 trong bài 2?
- Lỗi nào thường gặp khi quên dấu hai chấm sau if/else?
- Tại sao thụt lề lại quan trọng trong Python?
Ghi nhớ kiến thức 🎯
- ✅ Biểu thức logic chỉ nhận giá trị True hoặc False.
- ✅ Phép so sánh:
==,!=,<,>,<=,>= - ✅ Phép logic: and (và), or (hoặc), not (phủ định)
- ✅ Cấu trúc if: cần dấu hai chấm ":" và thụt lề đúng.
- ✅ if-elif-else: dùng cho nhiều điều kiện.