Bài 19: Dự án — "Máy tính Toán học" tự làm bằng Python
🎯 Mục tiêu bài học
• Gộp tất cả kỹ năng đã học thành một chương trình lớn.
• Biết làm menu cho người dùng chọn chức năng.
• Dùng if / elif / else để máy chạy đúng việc theo lựa chọn.
• Gộp tất cả kỹ năng đã học thành một chương trình lớn.
• Biết làm menu cho người dùng chọn chức năng.
• Dùng if / elif / else để máy chạy đúng việc theo lựa chọn.
Một “máy tính” có menu → người dùng chọn số, máy làm việc tương ứng.
Dự án là gì? Từ bài này ta không học lệnh mới nữa, mà ghép những gì đã biết (hàm def, phép tính chu vi – diện tích, trung bình cộng) thành một sản phẩm hoàn chỉnh: một chiếc máy tính Toán học có menu, giống một ứng dụng thật!
1. Hình dung sản phẩm trước khi viết
Máy tính của ta sẽ hiện một menu gồm các lựa chọn. Người dùng gõ một con số để chọn việc muốn làm. Đây là bước thiết kế – luôn nên nghĩ trước khi gõ code.
# Menu se hien ra: # 1. Chu vi hinh chu nhat # 2. Dien tich hinh chu nhat # 3. Trung binh cong 3 so # 0. Thoat
💡 Mẹo: chia dự án lớn thành từng việc nhỏ, làm xong từng phần một sẽ dễ hơn nhiều.
2. Mỗi chức năng là một hàm def
Ta viết mỗi phép tính thành một hàm riêng. Nhờ vậy code gọn gàng và dễ sửa. Đây chính là kỹ năng ở Bài 11 – 12.
def chu_vi(a, b): return (a + b) * 2 def dien_tich(a, b): return a * b def trung_binh(x, y, z): return (x + y + z) / 3
💡 Mỗi hàm làm một việc, có return để trả kết quả về.
3. Nhận lựa chọn từ người dùng: input
Lệnh input() cho người dùng gõ vào. Vì input luôn trả về chữ, ta dùng int() để đổi thành số.
chon = int(input("Ban chon: "))
💡 Nếu cần số có phần thập phân (như cạnh 2.5), dùng float() thay cho int().
4. Rẽ nhánh bằng if / elif / else
Sau khi biết người dùng chọn số mấy, máy dùng if / elif để chạy đúng chức năng. Nếu chọn số lạ, khối else báo lỗi.
Dùng if / elif để máy “rẽ nhánh” theo con số người dùng chọn.
if chon == 1: print(chu_vi(a, b)) elif chon == 2: print(dien_tich(a, b)) else: print("Lua chon khong hop le")
💡 elif = "else if" = nếu không phải cái trên thì thử cái này.
5. Ghép lại thành chương trình hoàn chỉnh
Cuối cùng, ta gộp: in menu → nhận lựa chọn → hỏi số liệu → gọi hàm → in kết quả. Đó là một máy tính Toán học hoàn chỉnh! Bạn sẽ thấy đầy đủ chương trình trong phần thí nghiệm bên dưới.
💡 Một chương trình thật cũng chỉ là nhiều mảnh nhỏ ghép lại theo thứ tự hợp lý.
📚 Bảng ghi nhớ
| Thành phần | Vai trò trong dự án |
|---|---|
| def ... return | Gói mỗi phép tính thành một hàm |
| input() + int() | Nhận lựa chọn / số liệu từ người dùng |
| if / elif / else | Rẽ nhánh, chạy đúng chức năng được chọn |
| print() | Hiện menu và in kết quả |
✎ Câu hỏi trắc nghiệm
Câu 1. Từ khoá elif trong Python có nghĩa là gì?
elif viết gọn của "else if": khi điều kiện phía trên không đúng, máy mới xét đến elif.
Câu 2. Vì sao ta cần int(input(...)) mà không chỉ dùng input(...)?
input() luôn cho ra chuỗi (chữ). Muốn cộng, nhân... phải đổi sang số bằng int() (hoặc float()).
Câu 3. Với hàm def chu_vi(a, b): return (a + b) * 2, gọi chu_vi(3, 5) trả về bao nhiêu?
(3 + 5) × 2 = 8 × 2 = 16. Đó là chu vi hình chữ nhật cạnh 3 và 5.
Câu 4. Trong máy tính có menu, khối else ở cuối dùng để làm gì?
else chạy khi không lựa chọn nào khớp → thường dùng để báo "Lựa chọn không hợp lệ".
Câu 5. Vì sao ta nên chia mỗi phép tính thành một hàm def riêng?
Chia thành hàm giúp mỗi phần làm một việc, dễ đọc, dễ tìm lỗi và tái sử dụng – đúng tinh thần lập trình.
💻 Phòng thí nghiệm Python: Đây là chiếc Máy tính Toán học hoàn chỉnh! Khi bấm Chạy, máy sẽ hỏi bạn chọn chức năng và nhập số. Thử chọn 1, 2 hoặc 3 rồi làm theo hướng dẫn nhé.
(Kết quả sẽ hiện ở đây)
🎉 Thử thách: Thêm chức năng 4. Diện tích hình vuông (chỉ cần 1 cạnh). Gợi ý: viết thêm hàm dien_tich_vuong(a) trả về a * a, rồi thêm một nhánh elif chon == 4.