BÀI 27. THAM SỐ CỦA HÀM
1. THAM SỐ VÀ ĐỐI SỐ CỦA HÀM
Tham số:
- Khái niệm: Là các biến được khai báo ngay khi định nghĩa hàm. Chúng đóng vai trò như những "người nhận" dữ liệu.
Đối số:
- Khái niệm: Là giá trị thực sự mà em truyền vào cho hàm khi gọi hàm đó.
- Ví dụ: Khi em gọi lệnh xin_chao("Minh") thì chữ "Minh" chính là đối số.
Cơ chế truyền giá trị:
- Khi gọi hàm, các đối số (giá trị bên ngoài) sẽ được gán lần lượt cho các tham số (biến bên trong) theo đúng thứ tự.
- Ví dụ: Có hàm def tong(a, b):
Nếu gọi tong(3, 5) thì máy tính sẽ hiểu: tham số a nhận giá trị 3, tham số b nhận giá trị 5.
2. CÁCH SỬ DỤNG CHƯƠNG TRÌNH CON
Tránh viết lại mã lệnh (Tái sử dụng): Giúp gom các đoạn lệnh xử lý một công việc lặp đi lặp lại thành một hàm để gọi ra dùng nhiều lần, giúp chương trình có cấu trúc rõ ràng, dễ hiểu.
- Ví dụ: Thay vì phải viết đi viết lại phép tính diện tích hình chữ nhật ở nhiều nơi trong chương trình, em chỉ cần viết hàm tinh_dien_tich(dai, rong) một lần và gọi lại mỗi khi cần.
Chia để trị (Phân chia công việc): Giúp chia nhỏ một bài toán lớn và phức tạp thành nhiều bài toán nhỏ, từ đó phát huy được tinh thần làm việc nhóm.
- Ví dụ: Khi nhóm của em viết phần mềm máy tính bỏ túi, một bạn sẽ phụ trách viết hàm cong(), bạn khác viết hàm tru(), rồi gộp lại thành một chương trình hoàn chỉnh.
Dễ bảo trì và nâng cấp: Khi dùng hàm, chương trình chính sẽ rất ngắn gọn. Nếu chương trình bị lỗi hoặc cần nâng cấp, em chỉ cần tìm đến đúng hàm đó để chỉnh sửa rất thuận tiện.
- Ví dụ: Nếu phép cộng bị sai, em chỉ cần vào bên trong hàm cong() để sửa lại, không cần phải dò tìm rải rác trong toàn bộ chương trình chính.
3. THỰC HÀNH: TRUYỀN GIÁ TRỊ CHO ĐỐI SỐ CỦA HÀM
Nhiệm vụ 1: Máy tính tổng linh hoạt
Đề bài:
Thiết lập hàm f_sum(A, b) có chức năng tính tổng các số của danh sách A theo quy định sau:
- Nếu b bằng 0 thì tính tổng tất cả các số của danh sách A .
- Nếu b khác 0 thì chỉ tính tổng các số dương của A.
Hướng dẫn:
Định nghĩa hàm với 2 tham số: danh sách A và cờ điều khiển b.
- Tạo biến S = 0 để lưu tổng. Dùng vòng lặp for x in A: để duyệt qua từng số trong danh sách.
- Bên trong vòng lặp, dùng lệnh if kiểm tra tham số b. Nếu b == 0, ta cộng dồn mọi số x vào S . Ngược lại, ta dùng thêm lệnh if x > 0: để chỉ cộng các số dương . Cuối cùng dùng return S.
Chương trình Python hoàn chỉnh:
Nhiệm vụ 2: Máy đếm từ thông minh
Đề bài:
Thiết lập hàm f_dem(msg, sep) có chức năng đếm số lượng từ của một câu (xâu msg) dựa vào kí tự tách từ (sep) do người dùng tự chỉ định.
Hướng dẫn:
Để tách xâu msg thành một danh sách các từ, ta dùng lệnh split().
- Tuy nhiên, thay vì tách bằng dấu cách mặc định, ta sẽ đưa tham số sep vào làm tham số cho lệnh split(sep).
- Cuối cùng, trả về độ dài của danh sách (chính là số lượng từ) bằng hàm len().
Chương trình Python hoàn chỉnh:
Nhiệm vụ 3: Máy in thẻ học sinh
Đề bài:
Thiết lập hàm in_the_hoc_sinh(ten, lop, truong) nhận vào 3 tham số. Hàm có nhiệm vụ in ra màn hình một khung thẻ học sinh chứa các thông tin đó.
Viết chương trình chính gọi hàm này 2 lần với các đối số khác nhau để thấy sự thay đổi.
Hướng dẫn:
Khởi tạo hàm bằng lệnh def kèm 3 tham số đại diện cho 3 mẩu thông tin.
- Dùng nhiều lệnh print() để trang trí và lồng ghép các tham số vào để in ra màn hình. (Hàm này không cần lệnh return vì nó chỉ thực hiện hành động in).
- Dưới chương trình chính, gọi tên hàm và truyền vào 3 giá trị cụ thể (đối số) theo đúng thứ tự: tên, lớp, trường.
Chương trình Python hoàn chỉnh: