Hàm trong Python: Cách tạo và gọi hàm (def, return)
Bạn có bao giờ viết đi viết lại cùng một đoạn code? Câu trả lời chính là hàm (function) — công cụ giúp bạn viết code một lần, dùng lại nhiều lần.
Hàm là gì? Tại sao cần dùng?
# CÓ hàm — DRY principle!
def xep_loai(diem):
if diem >= 8.0:
return "Giỏi"
elif diem >= 6.5:
return "Khá"
else:
return "Trung bình"
print(xep_loai(8.5)) # Giỏi
print(xep_loai(6.5)) # Khá
Cú pháp định nghĩa hàm
def tên_hàm(tham_số_1, tham_số_2):
"""Docstring: Mô tả hàm"""
# Code thực hiện
return kết_quả
Các loại tham số
Tham số mặc định
def tao_email(ten, domain="gmail.com"):
return f"{ten.lower()}@{domain}"
print(tao_email("minh")) # minh@gmail.com
print(tao_email("lan", "yahoo.com")) # lan@yahoo.com
*args và **kwargs
def tinh_tong(*so):
return sum(so)
print(tinh_tong(1, 2, 3)) # 6
print(tinh_tong(10, 20, 30)) # 60
Trả về nhiều giá trị
def phan_tich_diem(ds):
return max(ds), min(ds), sum(ds)/len(ds)
diem = [8.5, 6.0, 9.2, 7.8]
cao, thap, tb = phan_tich_diem(diem)
print(f"Cao: {cao}, Thấp: {thap}, TB: {tb:.2f}")
Lambda Function
nhan_doi = lambda x: x * 2
print(nhan_doi(5)) # 10
# Lambda với sorted()
sinh_vien = [{"ten": "Minh", "diem": 8.5}, {"ten": "Lan", "diem": 9.2}]
sap_xep = sorted(sinh_vien, key=lambda sv: sv["diem"])
Hàm built-in thường dùng
print(abs(-10)) # 10
print(max(1, 5, 3)) # 5
print(min(1, 5, 3)) # 1
print(sum([1, 2, 3])) # 6
print(len("hello")) # 5
print(sorted([3,1,2])) # [1, 2, 3]
Kết luận
Hàm là trung tâm của lập trình Python hiện đại. Nắm vững def, return, *args/**kwargs sẽ giúp bạn viết code sạch hơn và ít lặp hơn.