1. Giới thiệu về từ khóa def
trong Python
Trong Python, từ khóa def
(viết tắt của define) được sử dụng để định nghĩa một hàm – một khối mã được thiết kế để thực hiện một nhiệm vụ cụ thể.

Hàm trong Python giúp:
- Tái sử dụng mã: Viết một lần, sử dụng nhiều lần mà không cần sao chép mã.
- Tổ chức mã tốt hơn: Giúp chương trình dễ đọc và bảo trì hơn.
- Giảm lỗi và tăng hiệu suất: Việc đóng gói các thao tác vào một hàm giúp dễ kiểm soát hơn.
2. Cú pháp của từ khóa def
trong Python
Để tạo một hàm trong Python, chúng ta sử dụng cú pháp sau:
def ten_ham(tham_so_1, tham_so_2, ...): # Các câu lệnh xử lý return ket_qua # Giá trị trả về (tùy chọn)
Các thành phần chính của cú pháp:
def
: Từ khóa để định nghĩa hàm.ten_ham
: Tên của hàm do lập trình viên đặt (theo quy tắc đặt tên biến).tham_so
: Danh sách các tham số (có thể có hoặc không).return
: Dùng để trả về giá trị từ hàm. Nếu không córeturn
, hàm sẽ mặc định trả vềNone
.
3. Ví dụ cơ bản về def
trong Python
# Định nghĩa một hàm in thông điệp chào mừng def chao_mung(): print("Xin chào! Chào mừng bạn đến với Python.") # Gọi hàm chao_mung()
Kết quả đầu ra:
Xin chào! Chào mừng bạn đến với Python.
4. Truyền tham số vào hàm trong Python
Python cho phép truyền các tham số vào hàm để tùy chỉnh đầu vào.
Ví dụ: Hàm tính tổng hai số
def tong_hai_so(a, b): return a + b # Gọi hàm với hai tham số ket_qua = tong_hai_so(5, 10) print("Tổng hai số:", ket_qua)
Kết quả đầu ra:
Tổng hai số: 15
5. Hàm có giá trị trả về (return
)
Nếu một hàm có return
, nó sẽ trả về một giá trị có thể sử dụng tiếp tục trong chương trình.
def binh_phuong(so): return so ** 2 ket_qua = binh_phuong(4) print("Bình phương của 4 là:", ket_qua)
Kết quả đầu ra:
Bình phương của 4 là: 16
6. Truyền một hàm làm tham số cho hàm khác
Python cho phép truyền một hàm như một đối số vào một hàm khác.
# Định nghĩa một hàm nhận một hàm khác làm tham số def thuc_hien_ham(func, x): return func(x) # Định nghĩa một hàm tính lập phương def lap_phuong(n): return n ** 3 # Gọi hàm với một hàm khác làm tham số ket_qua = thuc_hien_ham(lap_phuong, 3) print("Lập phương của 3 là:", ket_qua)
Kết quả đầu ra:
Lập phương của 3 là: 27
7. Sử dụng *args
để truyền nhiều tham số
Khi không biết trước số lượng tham số, ta có thể dùng *args
.
def tong_tat_ca(*args): return sum(args) print(tong_tat_ca(1, 2, 3, 4, 5)) # 15 print(tong_tat_ca(10, 20, 30)) # 60
Kết quả đầu ra:
15 60
Ở đây, *args
thu thập tất cả tham số được truyền vào thành một tuple.
8. Sử dụng **kwargs
để truyền các tham số có tên
Python cho phép truyền các tham số theo dạng từ điển (dict
) với **kwargs
.
def hien_thi_thong_tin(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") # Gọi hàm với các tham số có tên hien_thi_thong_tin(ten="Minh", tuoi=25, dia_chi="Hà Nội")
Kết quả đầu ra:
ten: Minh tuoi: 25 dia_chi: Hà Nội
Ở đây, **kwargs
nhận tất cả các tham số dạng key=value
và lưu vào một từ điển.
9. Sử dụng def
trong lập trình hướng đối tượng (OOP)
Trong Python, từ khóa def
cũng được sử dụng để khai báo phương thức trong lớp.
class Nguoi: def __init__(self, ten, tuoi): self.ten = ten self.tuoi = tuoi def gioi_thieu(self): print(f"Tôi là {self.ten}, {self.tuoi} tuổi.") # Tạo đối tượng từ lớp nguoi1 = Nguoi("Hoa", 22) nguoi1.gioi_thieu()
Kết quả đầu ra:
Tôi là Hoa, 22 tuổi.
10. Hàm đệ quy trong Python
Hàm có thể gọi chính nó để giải quyết bài toán lặp.
def giai_thua(n): if n == 1: return 1 return n * giai_thua(n - 1) print("Giai thừa của 5 là:", giai_thua(5))
Kết quả đầu ra:
Giai thừa của 5 là: 120
Hàm giai_thua(n)
gọi lại chính nó cho đến khi n == 1
.
11. Kết luận
def
là từ khóa quan trọng giúp định nghĩa hàm trong Python.- Hàm giúp tổ chức mã nguồn, tái sử dụng mã và giảm lỗi.
- Có thể truyền tham số vào hàm bằng
*args
,**kwargs
, và có thể truyền cả hàm làm tham số. def
cũng được dùng trong lập trình hướng đối tượng (OOP).- Có thể sử dụng đệ quy để giải quyết các bài toán lặp.