Hiểu các hàm Python: Tổng quan thực tế
Là một lập trình viên, bạn sẽ thường thấy mình thực hiện một hành động hoặc nhiệm vụ lặp đi lặp lại. Điều này có thể tẻ nhạt và tốn thời gian, đặc biệt là khi làm việc với một cơ sở mã lớn hoặc phức tạp. Tự động hóa chúng bằng các chức năng là một cách tiếp cận hiệu quả hơn để thực hiện các tác vụ đó. Các hàm cho phép bạn viết logic mã một lần và sử dụng nó ở bất kỳ đâu trong chương trình của bạn.
Mục Lục
Hàm Python là gì?
Trong Python, hàm là một khối mã được sử dụng để thực hiện một tác vụ cụ thể. Bạn chỉ cần viết một hàm một lần, nhưng bạn có thể sử dụng nó nhiều lần trong mã của mình. Một hàm có thể nhận các đối số làm đầu vào và trả về các giá trị đầu ra. Chương trình đơn giản này hiển thị một hàm tính tổng của ba số:
def calculate_sum(a, b, c):
return a+b+c
print(calculate_sum(1,2,3))
print(calculate_sum(1000, 300,44))
print(calculate_sum(12, 4,78))
Trong chương trình trên, hàm trả về tổng của ba đối số. Khi hàm được gọi nhiều lần, nó sẽ trả về một đầu ra khác nhau cho mỗi trường hợp. Một ứng dụng hữu ích cho chức năng này sẽ là một ứng dụng máy tính.
Định nghĩa một hàm trong Python
Python có nhiều chức năng tích hợp sẵn cho các nhà phát triển sử dụng. Tuy nhiên, các chức năng tích hợp này không phải lúc nào cũng đủ để đáp ứng nhu cầu của hầu hết các dự án. Để đáp ứng nhu cầu tùy chỉnh, bạn phải xác định chức năng tùy chỉnh của mình. Xác định các chức năng tùy chỉnh là thông lệ phổ biến trong lập trình.
Trong Python, bạn có thể xác định hàm tùy chỉnh bằng cách sử dụng chắc chắn từ khóa theo sau là tên hàm của bạn với dấu ngoặc đơn ở phía trước. Đây là một ví dụ:
def function_name()
Bạn nên lưu ý các quy tắc này khi gán tên hàm trong Python:
- Tên hàm nên viết thường.
- Tên chức năng nên được mô tả.
- Sử dụng dấu gạch dưới để phân tách các từ trong tên hàm.
Sau khi xác định chức năng, bạn phải viết logic để thực hiện tác vụ mong muốn của mình. Ví dụ: hàm này tính diện tích của một hình tam giác:
def calculate_triangle_area(base, height):
area = (base * height)/2
return area
print(calculate_triangle_area(12, 3))
Hàm trên xác định hai tham số: căn cứ Và chiều cao, chia sản phẩm của họ cho hai và trả về kết quả dưới dạng đầu ra. Bạn có thể viết bất kỳ logic nào mà bạn muốn chức năng của mình thực hiện.
Hiểu đối số chức năng
Trong các ví dụ trước, các hàm đã nhận các đối số để thực hiện các hành động. Các đối số trong các ví dụ này được gọi là đối số bắt buộc hoặc vị trí. Trong Python, đối số của bạn có thể là một trong hai cách sau:
- đối số vị trí
- Đối số từ khóa
Đối số vị trí
Các đối số vị trí cần được chuyển theo đúng thứ tự định nghĩa. Ví dụ: nếu bạn định nghĩa một hàm có tham số một, bVà c, bạn phải chuyển các giá trị tương ứng cho các tham số này khi bạn gọi chúng. Hãy để chúng tôi kiểm tra một ví dụ trước:
def calculate_sum(a, b, c):
return a+b+c
print(calculate_sum(1,2,3))
print(calculate_sum(1000, 300,44))
print(calculate_sum(12, 4,78))
Trong chương trình trên, các tính_tổng() hàm nhận ba đối số bất cứ khi nào chúng ta gọi nó. Mỗi đối số đại diện cho một tham số tương ứng. Trong lời gọi hàm đầu tiên, các số 1, 2, Và 3 đại diện một, b, Và c cho phù hợp.
Tham số được khai báo trong định nghĩa của hàm, trong khi đối số là giá trị được truyền khi bạn gọi hàm Giá trị này là đại diện cho tham số tương ứng của nó.
Đối số vị trí là bắt buộc. Nếu bạn không thêm chúng, bạn sẽ nhận được một LoạiLỗi. Ví dụ sau minh họa điều này:
def calculate_sum(a, b, c):
return a+b+cprint(calculate_sum(1,2))
Khi bạn chạy chương trình trên trên máy của mình, bạn sẽ gặp lỗi tương tự như lỗi trong hình bên dưới:
Đối số từ khóa
Các đối số từ khóa không nhất thiết phải được chuyển bất cứ khi nào bạn gọi một hàm. Chúng là các đối số tùy chọn và không cần tuân theo một thứ tự cụ thể. Python cho phép chúng ta sử dụng *args và **kwargs để chỉ định đối số từ khóa.
Ngoài việc sử dụng * lập luận Và **kwargs, bạn cũng có thể chỉ định các giá trị mặc định cho các đối số của mình. Làm cách này sẽ không bị báo lỗi nếu quên thêm giá trị khi gọi hàm. Ví dụ này đưa ra một minh họa:
def calculate_sum(a, b, c=3):
return a+b+cprint(calculate_sum(1,2))
Trong chương trình trên, khi tính_tổng() được gọi, không có đối số cho c; điều này sẽ không ảnh hưởng đến chương trình vì c đã có một giá trị mặc định. Bạn có thể chỉ định các giá trị mặc định cho bao nhiêu đối số tùy thích nhưng hãy đảm bảo rằng bạn thực hiện việc này một cách khôn ngoan.
Sử dụng các chức năng để sắp xếp mã của bạn
Các hàm rất hữu ích để tổ chức mã của bạn, làm cho mã dễ đọc và hiệu quả hơn. Với các hàm, bạn có thể chia mã của mình thành các phần nhỏ hơn, có thể tái sử dụng, dễ hiểu và dễ bảo trì hơn. Ngoài ra, nếu bạn cần thay đổi mã của mình, bạn chỉ cần sửa đổi chức năng cần thiết chứ không phải toàn bộ cơ sở mã.