Hàm trong Python là nội dung quan trọng giúp người học viết chương trình gọn gàng, dễ hiểu và tái sử dụng nhiều lần. Với cách trình bày trực quan và ví dụ dễ áp dụng, bài viết từ TOPKID EDUALL hỗ trợ người mới, đặc biệt là học sinh, nắm kiến thức nền tảng về hàm một cách mạch lạc. Đọc ngay bài viết để rút ngắn thời gian học!
NỘI DUNG BÀI VIẾT
ToggleHàm trong Python là gì?
Hàm trong Python là một khối mã được nhóm lại để thực hiện một nhiệm vụ cụ thể và có thể tái sử dụng nhiều lần. Khi cần, chỉ cần gọi tên hàm và truyền dữ liệu đầu vào phù hợp, Python sẽ tự động xử lý thay vì phải viết lại toàn bộ mã.
Hàm giúp tổ chức chương trình rõ ràng, khoa học và dễ bảo trì hơn. Việc chia nhỏ nhiệm vụ thành nhiều hàm cũng giúp hạn chế lỗi và tăng hiệu quả khi mở rộng phần mềm, phù hợp với chuẩn lập trình Python 3.12 hiện nay.
Trong học lập trình Python, hàm xuất hiện liên tục từ các hàm có sẵn như print() đến hàm do người học tự định nghĩa. Nhờ có hàm, code gọn gàng hơn và giúp học sinh phát triển tư duy logic – nền tảng quan trọng trong STEAM.
Cú pháp hàm trong Python chuẩn Python 3.12
Việc khai báo hàm trong Python rất rõ ràng và dễ sử dụng. Người học chỉ cần sử dụng từ khóa def để bắt đầu định nghĩa một hàm mới, kèm theo tên hàm và danh sách tham số.
Cú pháp cơ bản:
def ten_ham(tham_so1, tham_so2):
# Khối mã thực thi nhiệm vụ
print(“Xin chào từ hàm!”)
return gia_tri # Có thể có hoặc không
Tên hàm nên được đặt theo quy tắc chữ thường và dấu gạch dưới, không có dấu cách. Các tham số được viết trong dấu ngoặc đơn, kết thúc phần khai báo bằng dấu hai chấm. Khối mã bên trong hàm phải thụt lề đúng 4 khoảng trắng để Python nhận diện phạm vi của hàm.
Trong Python 3.12, cú pháp định nghĩa hàm được giữ nguyên so với các phiên bản trước, đồng thời hỗ trợ tốt hơn cho chú thích kiểu dữ liệu (type hints), ví dụ:
def tinh_tong(a: int, b: int) -> int:
return a + b
Phân loại hàm trong Python
Hàm trong Python được chia thành bốn nhóm chính, giúp việc tổ chức và tái sử dụng mã nguồn hiệu quả hơn trong mọi dự án.
Nhóm 1 — Hàm built-in
Đây là các hàm có sẵn trong Python như len(), print(), input(). Người học sử dụng trực tiếp mà không cần định nghĩa trước. Ví dụ: len(“Xin chào”) trả về 8.
Nhóm 2 — Hàm tự định nghĩa
Được tạo ra bằng từ khóa def, phù hợp khi cần xử lý bài toán riêng như tính điểm trung bình hay xử lý dữ liệu đặc thù.
Nhóm 3 — Hàm lambda (hàm ẩn danh)
Có cú pháp ngắn gọn trong một dòng, ví dụ: lambda x: x * 2. Thường được dùng cho thao tác nhanh như sắp xếp danh sách theo quy tắc tùy chỉnh.
Nhóm 4 — Hàm từ module
Được import từ các thư viện như math.sqrt() khi import math, giúp mở rộng khả năng ngôn ngữ trong các dự án xử lý dữ liệu, AI hoặc Robotics.
Phân loại hàm trong Python hỗ trợ người học lựa chọn cách triển khai phù hợp theo từng nhiệm vụ, giúp code tối ưu và dễ bảo trì ngay cả khi chương trình ngày càng mở rộng.
Xem thêm: 7 Loại toán tử trong Python & ví dụ chi tiết, dễ hiểu
Hàm có tham số và không có tham số (so sánh & ví dụ)
Trong Python, hàm có thể hoạt động theo hai cách: không cần dữ liệu truyền vào hoặc nhận thêm dữ liệu để xử lý linh hoạt hơn.
Hàm không có tham số
Là dạng hàm thực hiện cùng một nhiệm vụ mỗi khi được gọi, không cần truyền thông tin từ bên ngoài.
def chao():
print(“Xin chào thế giới!”)
chao()
Dạng hàm này phù hợp với tác vụ cố định như in lời chào hoặc hiển thị logo chương trình.
Hàm có tham số
Cho phép truyền dữ liệu khi gọi hàm, giúp tùy chỉnh hành vi theo từng trường hợp.
def chao(ten):
print(f”Xin chào {ten}!”)
chao(“Alice”)
Hàm có tham số thường được dùng trong xử lý dữ liệu, tính toán và điều khiển thiết bị (như robot đổi tốc độ di chuyển).
So sánh nhanh
| Loại hàm | Mức độ linh hoạt | Ứng dụng tiêu biểu |
| Không tham số | Thấp | Tác vụ cố định, lặp lại |
| Có tham số | Cao | Tương tác dữ liệu, tùy chỉnh hành vi |
Giá trị trả về của hàm trong Python (return)
Trong Python, return giúp hàm trả kết quả ra bên ngoài để tiếp tục sử dụng ở những bước tiếp theo. Khi một hàm có return, giá trị đó được lưu lại và có thể gán vào biến hoặc truyền sang hàm khác.
Ví dụ cơ bản:
def tinh_tong(a, b):
return a + b
ket_qua = tinh_tong(3, 5)
print(ket_qua) # 8
Nếu hàm không có return, Python mặc định trả về None, nghĩa là không có kết quả để sử dụng. Ngoài ra, return cũng kết thúc hàm ngay tại vị trí nó xuất hiện.
Python cho phép trả nhiều giá trị một lúc dưới dạng tuple:
def thong_tin():
return “Python”, 2025
ten, nam = thong_tin()
print(ten, nam)
Hiểu cách hoạt động của return giúp chương trình Python dễ đọc hơn và tận dụng được giá trị tính toán ở nhiều bước trong dự án thực tế.
Các lỗi thường gặp khi dùng hàm trong Python
Dưới đây là 5 lỗi phổ biến mà học viên thường gặp khi viết hàm, kèm cách khắc phục thực tế:
IndentationError — thụt lề sai
Nguyên nhân: Trộn tab và space hoặc thụt lề không nhất quán trong khối hàm.
Cách sửa: Luôn dùng 4 spaces cho mỗi mức thụt lề và cấu hình IDE (Thonny, VS Code) để tự chuyển tab → spaces. Kiểm tra kỹ các dòng nằm trong def để đảm bảo cùng mức thụt lề.
NameError — gọi tên hàm/biến chưa định nghĩa
Nguyên nhân: Gọi hàm trước khi định nghĩa, hoặc lỗi chính tả tên hàm/biến.
Cách sửa: Đảm bảo định nghĩa hàm (def) xuất hiện trước lần gọi; kiểm tra chính tả và phạm vi (scope) của biến/hàm.
TypeError — truyền tham số sai kiểu
Nguyên nhân: Gọi hàm với kiểu dữ liệu không phù hợp (ví dụ truyền chuỗi cho tham số cần số).
Cách sửa: Ép kiểu khi cần, ví dụ int(input(…)), hoặc thêm kiểm tra kiểu/type hints trong hàm và thông báo lỗi rõ ràng cho người dùng.
SyntaxError — lỗi cú pháp (ví dụ thiếu dấu hai chấm)
Nguyên nhân: Thiếu ký tự bắt buộc (dấu :, ngoặc, indent) hoặc viết sai cú pháp def.
Cách sửa: Kiểm tra lại cú pháp khai báo hàm (def name(…):) và dùng lệnh kiểm tra cú pháp python -m py_compile file.py hoặc chạy mã trong IDE để nhận cảnh báo sớm.
RecursionError — đệ quy chạy vô hạn
Nguyên nhân: Hàm gọi chính nó nhưng không có hoặc thiếu điều kiện dừng.
Cách sửa: Thêm điều kiện dừng rõ ràng trong hàm đệ quy; kiểm soát độ sâu đệ quy bằng logic hoặc chuyển sang giải pháp lặp nếu phù hợp.
Xem thêm: Python cơ bản từ A đến Z cho người mới bắt đầu [2025]
Ví dụ hàm trong Python – Bộ mẫu từ dễ đến nâng cao
Phần thực hành dưới đây gồm 10 ví dụ hàm trong Python, chia theo mức độ tăng dần từ cơ bản đến nâng cao. Học viên có thể sao chép mã và chạy trực tiếp trong Thonny hoặc Google Colab để luyện tập kỹ năng lập trình.
Ví dụ 1 – Hàm tính tổng hai số (cơ bản – toán học)
def cong(a, b):
return a + b
print(cong(4, 6)) # 10
Ứng dụng: Tính tổng điểm hoặc tổng số lượng.
————————–
Ví dụ 2 – Hàm xử lý chuỗi (cơ bản)
def chao(ten):
return f”Xin chào {ten}!”
print(chao(“Minh”)) # Xin chào Minh!
Ứng dụng: Tạo thông báo cá nhân hóa.
————————–
Ví dụ 3 – Hàm không tham số (cơ bản)
def ngay_hoc():
print(“Hôm nay học Python!”)
ngay_hoc()
Ứng dụng: Hiển thị lời nhắc lịch học.
————————–
Ví dụ 4 – Hàm tính tổng danh sách (trung bình – list)
def tong_list(danh_sach):
return sum(danh_sach)
print(tong_list([1, 2, 3])) # 6
Ứng dụng: Quản lý chi tiêu hoặc điểm số.
————————–
Ví dụ 5 – Hàm đếm số từ trong câu (trung bình – chuỗi)
def dem_tu(cau):
return len(cau.split())
print(dem_tu(“Học Python thật vui”)) # 3
Ứng dụng: Kiểm tra nội dung bài viết của học viên.
————————–
Ví dụ 6 – Hàm kiểm tra số chẵn lẻ (trung bình – điều kiện)
def chan_le(so):
if so % 2 == 0:
return “Chẵn”
return “Lẻ”
print(chan_le(7)) # Lẻ
Ứng dụng: Phân loại dữ liệu trong game hoặc toán học.
————————–
Ví dụ 7 – Hàm lambda (nâng cao – xử lý nhanh)
nhan_doi = lambda x: x * 2
print(nhan_doi(5)) # 10
Ứng dụng: Biến đổi dữ liệu tự động.
————————–
Ví dụ 8 – Hàm đệ quy tính giai thừa (nâng cao – toán học)
def giai_thua(n):
if n == 1:
return 1
return n * giai_thua(n – 1)
print(giai_thua(5)) # 120
Ứng dụng: Giải toán tổ hợp, thuật toán nâng cao.
————————–
Ví dụ 9 – Hàm đọc tệp dữ liệu (nâng cao – file)
def doc_file(ten_file):
with open(ten_file, ‘r’) as f:
return f.read()
# print(doc_file(‘file.txt’))
Ứng dụng: Xử lý thông tin từ file bên ngoài.
————————–
Ví dụ 10 – Hàm sử dụng module math (nâng cao)
import math
def dien_tich_hinh_tron(ban_kinh):
return math.pi * (ban_kinh ** 2)
print(dien_tich_hinh_tron(3)) # ~28.27
Ứng dụng: Thiết kế hình học trong Robotics.
Tổng kết
Kiến thức về hàm trong Python tạo tiền đề cho học sinh mở rộng sang các chủ đề như module, thư viện và xử lý dự án thực tế. Việc luyện tập thường xuyên giúp củng cố tư duy logic và khả năng giải quyết vấn đề trong lập trình. Nội dung chuyên sâu và đa dạng hơn sẽ tiếp tục được cập nhật trên hệ thống tài liệu học lập trình của TOPKID EDUALL. Theo dõi chúng tôi để xem thêm nhé!



