A. Yêu Cầu Cần Đạt
- Hiểu được khái niệm chương trình con (hàm) trong Python.
- Biết cách tạo và sử dụng hàm.
I. Khái Niệm Hàm
Hàm (Function) là một khối lệnh thực hiện một công việc xác định. Khi cần sử dụng, chỉ cần gọi tên hàm thay vì viết lại toàn bộ chương trình.
Lợi ích của hàm:
Giảm lặp lại mã lệnh.
Chương trình ngắn gọn, dễ đọc.
Dễ kiểm tra, sửa lỗi và tái sử dụng.
II. Một Số Hàm Có Sẵn Trong Python
| Hàm | Chức năng |
|---|---|
print() | Hiển thị dữ liệu ra màn hình |
input() | Nhập dữ liệu từ bàn phím |
int() | Chuyển sang số nguyên |
float() | Chuyển sang số thực |
str() | Chuyển sang chuỗi |
bool() | Chuyển sang kiểu logic |
len() | Đếm số phần tử hoặc số ký tự |
list() | Tạo danh sách |
range() | Tạo dãy số |
round() | Làm tròn số |
abs() | Giá trị tuyệt đối |
type() | Cho biết kiểu dữ liệu |
ord() | Mã Unicode của ký tự |
divmod(a,b) | Thương và số dư của phép chia |
Ví dụ:
x = int("25")
print(len("Python"))
III. Thiết Lập Hàm Tự Định Nghĩa
Python cho phép người dùng tự tạo hàm bằng từ khóa def.
Cú pháp:
<Khối Lệnh>
• def: từ khóa khai báo hàm. • ten_ham: tên hàm do người dùng đặt. • tham_so: dữ liệu truyền vào (có thể có hoặc không).

IV. Hàm Có Trả Về Giá Trị
Sử dụng return để trả kết quả. Khi gặp return, hàm kết thúc ngay.
Cú pháp:
<Khối lệnh>
return gia_tri
Ví dụ:
return n + 1
print(inc(3))
Kết quả: 4
V. Hàm Không Trả Về Giá Trị
Hàm không trả về giá trị chủ yếu thực hiện công việc như in ra màn hình, không cần gán cho biến.
Ví dụ:
print("Xin chào", ten)
thong_bao("Minh")
Kết quả: Xin chào Minh
VI. So Sánh Hai Loại Hàm
| Hàm trả về giá trị | Hàm không trả về giá trị |
|---|---|
Có return giá_trị | Không trả về dữ liệu |
| Dùng kết quả để tính toán | Chủ yếu thực hiện công việc như in, nhập |
| Có thể gán cho biến | Không cần gán |
Ví dụ:
thong_bao("Lan")
VII. Ví Dụ Thực Hành
🔸 Ví dụ 1: Nhập tên và chào người dùng
ten = input("Nhập họ tên: ")
print("Xin chào", ten)
meeting()
🔸 Ví dụ 2: Kiểm tra số nguyên tố (tối ưu)
if n < 2:
return False
k = 2
while k < n:
if n % k == 0:
return False
k += 1
return True
Ưu điểm: Gặp ước số thì kết thúc ngay → chạy nhanh hơn.
🔸 Hàm nhập xâu
s = input("Nhập xâu: ")
return s
🔸 Hàm in dãy số
for i in range(n):
print(i, end=" ")
IX. Bài Luyện Tập
VIII. VẬN DỤNG
1. Trong khi viết hàm có thể có nhiều lệnh return. Quan sát hàm sau và giải thích ý nghĩa của những lệnh return. Hàm này có điểm gì khác so với hàm prime() đã được mô tả trong phần thực hành?
if n < 2:
return False
k = 2
while k < n:
if n % k == 0:
return False
k = k + 1
return True
Ý nghĩa các lệnh return
return False (thứ nhất) — Khi n < 2, n không phải là số nguyên tố nên hàm trả về False và kết thúc ngay.
return False (thứ hai) — Khi tìm thấy k chia hết n, n không phải là số nguyên tố. Hàm dừng ngay, không cần kiểm tra các số còn lại.
return True — Nếu đã kiểm tra từ 2 đến n-1 mà không tìm thấy ước nào thì n là số nguyên tố.
Hàm này khác gì với hàm prime() ở phần thực hành?
| Hàm trong phần thực hành | Hàm ở bài vận dụng |
|---|---|
| Đếm số lượng ước của n rồi mới kết luận. | Gặp ước số là kết thúc ngay. |
| Sử dụng biến đếm C. | Không cần biến đếm. |
| Kiểm tra từ 1 đến n. | Chỉ kiểm tra từ 2 đến n-1. |
| Thực hiện nhiều phép chia hơn. | Nhanh hơn vì dừng ngay khi phát hiện không phải số nguyên tố. |
Kết luận: Hàm trong bài vận dụng tối ưu hơn vì sử dụng nhiều lệnh return để kết thúc sớm, giúp giảm số lần kiểm tra.
2. Viết chương trình yêu cầu nhập từ bàn phím một xâu kí tự, sau đó thông báo:
- Tổng số các kí tự là chữ số của xâu.
- Tổng số các kí tự là chữ cái tiếng Anh trong xâu. Viết hàm cho mỗi yêu cầu trên.
dem = 0
for ch in s:
if ch.isdigit():
dem += 1
return dem
def dem_chu_cai(s):
dem = 0
for ch in s:
if ('A' <= ch <= 'Z') or ('a' <= ch <= 'z'):
dem += 1
return dem
# Chương trình chính
xau = input("Nhập một xâu ký tự: ")
print("Số ký tự là chữ số:", dem_chu_so(xau))
print("Số ký tự là chữ cái tiếng Anh:", dem_chu_cai(xau))
Ví dụ
Input: Python2026@AI
Output: Số ký tự là chữ số: 4 Số ký tự là chữ cái tiếng Anh: 8
Kiến thức cần nhớ
• return trả về kết quả và kết thúc hàm ngay lập tức. • Một hàm có thể có nhiều lệnh return. • Nên dùng nhiều return khi có thể kết luận sớm. • Dùng isdigit() để kiểm tra chữ số. • Kiểm tra chữ cái tiếng Anh bằng ('A' <= ch <= 'Z') or ('a' <= ch <= 'z'), hoặc ch.isalpha() and ch.isascii().
X. Ghi Nhớ
• Hàm giúp chương trình ngắn gọn, dễ quản lí và tái sử dụng. • Khai báo hàm bằng từ khóa def. • Hàm có thể có hoặc không có tham số. • Hàm có thể trả về giá trị (return) hoặc không. • Khi chương trình gặp return, hàm kết thúc ngay. • Có thể gọi một hàm nhiều lần trong chương trình. • Nên chia bài toán lớn thành nhiều hàm nhỏ để chương trình dễ hiểu và dễ bảo trì.
