BÀI 27: THAM SỐ CỦA HÀM

 

BÀI 27: THAM SỐ CỦA HÀM

A. Yêu cầu cần đạt

  • Hiểu cách thiết lập tham số của hàm và cách truyền giá trị qua đối số.
  • Biết cách viết chương trình có sử dụng chương trình con.


B. Nội dung bài học

1. Tham số và đối số của hàm

Ví dụ: Cách truyền dữ liệu qua tham số

# Hàm f() có 3 tham số a, b, c def f(a, b, c): return a + b + c # Gọi hàm với giá trị cụ thể print(f(1, 2, 3)) # Kết quả: 6 # Sử dụng biến đã có giá trị x, y, z = 10, 20, 5 print(f(x, y, z)) # Kết quả: 35 # Lỗi nếu biến chưa được định nghĩa print(f(a, b, c)) # Lỗi: NameError: name 'a' is not defined

Ghi nhớ

  • Tham số (parameter): Được định nghĩa khi khai báo hàm và hoạt động như biến bên trong hàm.
  • Đối số (argument): Là giá trị được truyền vào hàm khi gọi hàm.
  • Số lượng đối số truyền vào phải khớp với số tham số của hàm.


2. Cách sử dụng chương trình con

Ví dụ 1: Kiểm tra số nguyên tố bằng hàm

def prime(n): if n < 2: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True # Kiểm tra một số có phải số nguyên tố không print(prime(5)) # Kết quả: True print(prime(10)) # Kết quả: False

Ví dụ 2: Tính tổng các số dương trong danh sách

def tongduong(A): return sum(x for x in A if x > 0) B = [-1, 3, 5, -2, 8] C = [0, -4, 7, 2, -3] print(tongduong(B)) # Kết quả: 16 print(tongduong(C)) # Kết quả: 9

Tóm lại

  • Chia bài toán lớn thành các bài toán nhỏ dễ quản lý hơn.
  • Chương trình có cấu trúc rõ ràng, dễ bảo trì và mở rộng.


C. Củng cố - Vận dụng

Thực hành truyền giá trị cho đối số của hàm

Nhiệm vụ 1: Hàm tính tổng có điều kiện

def f_sum(A, b): if b == 0: return sum(A) return sum(x for x in A if x > 0) print(f_sum([1, -2, 3, 4], 0)) # Kết quả: 6 print(f_sum([1, -2, 3, 4], 1)) # Kết quả: 8

Nhiệm vụ 2: Hàm đếm số từ trong chuỗi

def f_dem(msg, sep): return len(msg.split(sep)) print(f_dem("Mùa thu lịch sử", " ")) # Kết quả: 3 print(f_dem("Mùa thu lịch sử", " . ")) # Kết quả: 1

Nhiệm vụ 3: Hàm ghép hai chuỗi theo kiểu xen kẽ

def merge_str(s1, s2): S = "".join(a + b for a, b in zip(s1, s2)) return S + s1[len(S)//2:] + s2[len(S)//2:] print(merge_str("1111", "0000")) # Kết quả: "10101010"

TRẮC NGHIỆM

Mới hơn Cũ hơn
Đọc tiếp:
Lên đầu trang