Từ khóa def trong Python – Cách định nghĩa và sử dụng hàm

hướng dẫn học python tìm hiểu ngôn ngữ lập trình python nguyễn Đức mùi

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ướng dẫn học python tìm hiểu ngôn ngữ lập trình python nguyễn Đức mùi

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.

Menu Python>>

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

error: Content is protected !!
Hotline: 039.2266.928
Khóa học Toefl
Phone now