Bài 11: Cỗ máy tí hon — Hàm tự tạo với def
🎯 Mục tiêu bài học: Em sẽ biết cách tự tạo ra một hàm (function) — giống như tự chế một cỗ máy nhỏ để tính chu vi và diện tích hình chữ nhật. Nhờ hàm, ta viết một lần rồi dùng lại thật nhiều lần mà không phải chép đi chép lại!
Hàm giống một cỗ máy: cho "nguyên liệu" (tham số) vào, nhận "sản phẩm" (kết quả) ra.
Ở các bài trước, em đã dùng những hàm có sẵn của Python như print(), input(), len(). Hôm nay em sẽ lên một bậc mới: tự làm hàm của riêng mình để giải bài toán hình học lớp 4-5!
1. Hàm là gì? Vì sao cần hàm?
Hãy tưởng tượng một cỗ máy làm bánh: em bỏ bột và đường vào (nguyên liệu), máy chạy, rồi nhả ra chiếc bánh (kết quả). Hàm trong Python cũng vậy: ta đưa số liệu vào, hàm tính toán, rồi trả về kết quả.
Giả sử em phải tính diện tích của 10 mảnh vườn hình chữ nhật khác nhau. Nếu viết dai * rong mười lần thì rất mỏi tay và dễ sai. Có hàm rồi, em chỉ cần gọi tên nó là xong!
2. Cách viết một hàm bằng def
Từ khoá def (viết tắt của define — "định nghĩa") báo cho Python biết: "Tôi sắp tạo một hàm mới!". Sau đó là tên hàm, cặp ngoặc chứa tham số, rồi dấu hai chấm.
def dien_tich_hcn(dai, rong): kq = dai * rong return kq
✎ Ba điều cần nhớ: (1) các dòng bên trong hàm phải thụt vào (dùng phím Tab hoặc vài dấu cách); (2) dai và rong là tham số — chỗ để nhận số liệu; (3) return nghĩa là "trả kết quả ra ngoài".
Bài toán quen thuộc: chu vi và diện tích hình chữ nhật — giờ ta để Python tính giúp!
3. Gọi hàm để dùng nó
Viết hàm xong, nó mới chỉ "nằm chờ". Muốn nó chạy, ta phải gọi hàm bằng cách ghi tên hàm và đưa số liệu vào ngoặc.
def dien_tich_hcn(dai, rong): return dai * rong s = dien_tich_hcn(5, 3) print("Dien tich la:", s)
✎ Khi gọi dien_tich_hcn(5, 3), số 5 chui vào dai, số 3 chui vào rong. Hàm tính 5 * 3 = 15 rồi trả ra. Kết quả in: Dien tich la: 15.
4. Một hàm cho chu vi nữa
Ta có thể tạo bao nhiêu hàm cũng được! Đây là hàm tính chu vi hình chữ nhật theo công thức (dài + rộng) × 2.
def chu_vi_hcn(dai, rong): return (dai + rong) * 2 print("Chu vi:", chu_vi_hcn(5, 3))
✎ Nhớ dùng ngoặc đơn để máy cộng dai + rong trước rồi mới nhân 2 — giống thứ tự phép tính trong môn Toán!
5. Bảng ghi nhớ về hàm
| Thành phần | Ý nghĩa | Ví dụ |
|---|---|---|
| def | Bắt đầu định nghĩa một hàm mới | def chu_vi_hcn(...) |
| Tham số | Chỗ nhận số liệu đưa vào | (dai, rong) |
| Thụt lề | Phần thân hàm phải lùi vào | return ... |
| return | Trả kết quả ra ngoài hàm | return dai * rong |
| Gọi hàm | Ra lệnh cho hàm chạy | dien_tich_hcn(5, 3) |
🎯 Phần A — Trắc nghiệm kiểm tra
Câu 1. Từ khoá nào dùng để bắt đầu tạo một hàm mới trong Python?
def (viết tắt của define) báo cho Python biết ta sắp định nghĩa một hàm mới. print và input là hàm có sẵn, còn return chỉ dùng bên trong thân hàm.
Câu 2. Cho hàm sau, kết quả in ra là gì?
def nhan2(x):
return x * 2
print(nhan2(6))
Khi gọi nhan2(6), số 6 chui vào tham số x. Hàm trả về 6 * 2 = 12, nên print in ra 12.
Câu 3. Trong hàm def dien_tich(dai, rong): thì dai và rong được gọi là gì?
Những cái tên nằm trong ngoặc khi định nghĩa hàm là tham số — chúng là "chỗ trống" để nhận số liệu mà ta đưa vào lúc gọi hàm.
Câu 4. Lệnh nào dùng để "trả kết quả ra ngoài" cho hàm?
return gửi kết quả từ trong hàm ra ngoài để ta lưu vào biến hoặc in ra. Không có return, hàm tính xong sẽ "giữ khư khư" kết quả cho riêng nó.
Câu 5. Một hình chữ nhật dài 8, rộng 2. Gọi chu_vi_hcn(8, 2) với công thức (dai + rong) * 2 cho kết quả bằng bao nhiêu?
Tính trong ngoặc trước: 8 + 2 = 10, rồi nhân 2: 10 * 2 = 20. Vậy chu vi là 20.
💻 Phần B — Phòng lập trình: Tự tạo hàm của em!
Dưới đây đã có sẵn hai hàm tính chu vi và diện tích. Hãy bấm Chạy để xem kết quả. Sau đó thử đổi số trong hai dòng gọi hàm (ví dụ chu_vi_hcn(10, 4)) rồi chạy lại nhé!
(Kết quả sẽ hiện ở đây sau khi em bấm Chạy)
🎉 Thử thách: Em hãy tự viết thêm một hàm chu_vi_vuong(canh) tính chu vi hình vuông (bằng canh * 4), rồi gọi thử với cạnh bằng 6. Kết quả đúng phải là 24!