Nội dung chính
- 1 Tổng quan về Hàm (function) trong python
- 2 Hàm là gì?
- 3 Hàm có tham số (parameters)
- 4 Hàm có nhiều tham số
- 5 Hàm có giá trị trả về (return)
- 6 Hàm trả về nhiều giá trị
- 7 Hàm có giá trị mặc định
- 8 Hàm với số lượng tham số linh hoạt (*args, **kwargs)
- 9 Biến cục bộ và biến toàn cục
- 10 Hàm lồng nhau (nested function)
- 11 Hàm vô danh (lambda)
- 12 Ứng dụng thực tế – chương trình quản lý sản phẩm mini
- 13 Bài tập thực hành
- 14 Lời giải gợi ý
- 15 Kết bài
Tổng quan về Hàm (function) trong python
Ở các bài trước, bạn đã làm quen với biến, kiểu dữ liệu, điều kiện, vòng lặp – những nền tảng quan trọng của Python. Tuy nhiên, để viết được chương trình lớn, sạch, tối ưu và tái sử dụng được, chúng ta cần học về hàm (function).
Hàm giúp chia nhỏ chương trình thành từng khối dễ quản lý. Đây cũng là kỹ năng phân tích – tư duy lập trình quan trọng nhất của người viết code chuyên nghiệp.

Trong bài này, chúng ta sẽ tìm hiểu:
-
Hàm là gì?
-
Cách định nghĩa và sử dụng hàm
-
Hàm có tham số
-
Hàm trả về giá trị
-
Hàm nhiều giá trị trả về
-
Hàm mặc định
-
Hàm với số lượng tham số linh hoạt
-
Biến cục bộ – biến toàn cục
-
Thực hành cuối bài + lời giải chi tiết
Bài này dài và cực kỳ quan trọng. Sau bài 6, bạn đã đạt đến mức “biết lập trình Python đúng chuẩn”.
Hàm là gì?
Hàm trong Python là một khối mã được đặt tên, có thể được gọi (call) nhiều lần ở nhiều nơi. Mục đích chính:
-
Tăng khả năng tái sử dụng
-
Giảm lặp lại code
-
Tách chương trình thành các phần dễ hiểu
-
Dễ sửa, dễ bảo trì
Cú pháp cơ bản:
Ví dụ đơn giản:
Gọi hàm:
Diễn giải
-
defdùng để định nghĩa hàm -
ten_hamlà tên bạn đặt -
Trong hàm có thể chứa bao nhiêu dòng mã tùy ý
-
Muốn thực thi thì phải gọi hàm
Hàm có tham số (parameters)
Tham số giúp hàm linh hoạt hơn.
Ví dụ về hàm có tham số:
Gọi hàm:
Diễn giải
-
tenlà tham số -
Khi gọi hàm, bạn truyền “Nam”, “Lan” → gọi là đối số (argument)
-
Hàm xử lý tuỳ theo dữ liệu được truyền vào
Hàm có nhiều tham số
Diễn giải
-
Hàm cong có 2 tham số:
a,b -
Khi gọi hàm, truyền 2 số
-
Hàm thực hiện phép cộng
Hàm có giá trị trả về (return)
Nhiều hàm không chỉ in ra mà phải trả kết quả.
Ví dụ:
Diễn giải
-
returntrả một giá trị về nơi gọi -
Giá trị đó có thể gán vào biến
-
Sau
return, hàm dừng ngay lập tức
Hàm trả về nhiều giá trị
Python cho phép trả về tuple:
Diễn giải
-
Hàm trả về 3 giá trị
-
Bên ngoài dùng kỹ thuật unpacking để nhận từng giá trị
Hàm có giá trị mặc định
Diễn giải
-
Nếu người dùng không truyền tham số → dùng mặc định
-
Dùng để làm code linh hoạt hơn
Hàm với số lượng tham số linh hoạt (*args, **kwargs)
*args – nhận mọi số lượng tham số dạng tuple
Diễn giải
-
*argsgom tất cả đối số thành 1 tuple -
Dùng khi không biết trước số lượng tham số
**kwargs – tham số kiểu từ khóa dạng dictionary
Diễn giải
-
**kwargsgom đối số dạng key=value -
Trả ra dictionary
-
Rất hữu ích cho thiết kế API, optional settings
Biến cục bộ và biến toàn cục
Biến cục bộ
Biến toàn cục
Thay đổi biến toàn cục trong hàm (dùng global)
Diễn giải
-
Biến cục bộ chỉ tồn tại trong hàm
-
Biến toàn cục tồn tại toàn chương trình
-
Dùng
globalđể sửa biến toàn cục (nên hạn chế)
Hàm lồng nhau (nested function)
Diễn giải
-
Hàm có thể nằm trong hàm khác
-
Dùng nhiều trong lập trình nâng cao
Hàm vô danh (lambda)
Diễn giải
-
lambda tạo hàm ngắn gọn
-
thường dùng trong filter, map, sort
Ứng dụng thực tế – chương trình quản lý sản phẩm mini
Ví dụ tạo nhiều hàm cho 1 ứng dụng:
Diễn giải rất đầy đủ:
-
Mỗi hành động tách thành 1 hàm riêng
-
Dễ bảo trì
-
Dễ mở rộng hệ thống thành phiên bản lớn hơn
Bài tập thực hành
Bài 1
Viết hàm kiểm tra số nguyên tố.
Bài 2
Viết hàm tìm số lớn nhất trong danh sách.
Bài 3
Viết hàm tính giai thừa.
Bài 4
Viết hàm nhập danh sách tên học sinh, sau đó có hàm in ra danh sách.
Lời giải gợi ý
Bài 1 – Số nguyên tố
Bài 2 – Số lớn nhất
Bài 3 – Giai thừa
Bài 4 – Danh sách tên
Kết bài
Hàm (Function) là công cụ mạnh nhất giúp bạn viết code Python sạch, dễ hiểu và tái sử dụng. Khi biết cách chia nhỏ vấn đề thành hàm hợp lý, bạn đã bước vào tư duy lập trình chuyên nghiệp. Đây cũng là kiến thức nền tảng để tiếp tục học các khái niệm quan trọng hơn như Lập trình hướng đối tượng (OOP), module – package, và các framework sau này.
Bài 6 là một trong những bài quan trọng nhất của toàn bộ khóa học.
Ở bài tiếp theo, chúng ta sẽ học về module – import – thư viện trong Python, giúp bạn tận dụng sức mạnh của cả thế giới Python.
Tiếp tục chuỗi series tự học python: (Bài 7): Module và thư viện trong python


1 Trackback / Pingback