Trong bài viết này, bạn sẽ tìm hiểu về function, function là gì và cách tạo một function trong Python. Đây không phải là kiến thức cao siêu nhưng lại rất quan trọng mà ở hầu hết ngôn ngữ nào cũng phải hỗ trợ, và Python cũng không ngoại lệ.
1. Function là gì?
Function hay còn gọi là hàm, nó là tổng hợp một đoạn code gồm một hoặc nhiều lệnh nhằm giải quyết một bài toán cụ thể nào đó.
Function ra đời giúp lập trình viên dễ dàng tối ưu chương trình hơn, bởi ta có thể sử dụng function nhiều lần mà không cần phải định nghĩa lại, ta gọi đây là hướng lập trình modun. Việc tái sử dụng này giúp code ngắn và gọn hơn rất nhiều.
Cú pháp tạo function:
1
2
3
|
def function_name(parameters): """docstring""" statement(s) |
Trong đó các thành phần được giải thích như sau:
def
là từ khóa bắt buộc dùng để tạo function, nó được đặt tại vị trí đầu tiên của functionfunction_name
là tên của function mà bạn muốn đặt, ví dụ bạn viết function kiểm tra số lớn nhất thì có thể đặt tên lànumber_max
.docstring
là phần mô tả ý nghĩa của function, cái này do bạn tự nhập vào để sau này dễ dàng hiểu ý nghĩa của function mà không cần phải đọc lại toàn bộ code.statement(s)
là những dòng lệnh xử lý bên trong functionparameters
là các tham số truyền vào của function
1
2
3
4
5
|
def greet(name): """This function greets to the person passed in as parameter""" print ( "Hello, " + name + ". Good morning!" ) |
2. Cách gọi function
Trong Python để gọi một function thì bạn chỉ việc nhập tên của function, sau đó truyền thêm các tham số nếu có. Bạn có thể gọi đến function ở bất kì đâu, miễn là trong phạm vi tồn tại của function.
Như ở ví dụ trên mình sẽ gọi đến function greet
như sau:
1
|
greet( 'Paul' ) |
Kết quả:
1
|
Hello, Paul. Good morning! |
4. Ý nghĩa của docstring
Chuỗi đầu tiên sau tên hàm được gọi là docstring và viết tắt của document string. Nó được sử dụng để giải thích ngắn gọn ý nghĩa của function.
Mặc dù bạn có thể nhập docstring hoặc không cần cũng được, tuy nhiên document sẽ giúp bạn hiểu ý nghĩa của function mà không cần phải dò lại code, vì vậy với những lập trình viên có kinh nghiệm thì không bao giờ bỏ qua phần này.
Quay lại ví dụ trên, chúng ta có một docstring bên dưới tiêu đề hàm, và mình sử dụng đoạn code sau để xem ý nghĩa của hàm này.
1
2
3
4
|
>>> print (greet.__doc__) This function greets to the person passed into the name parameter |
4. Giá trị trả về của function
Mỗi function có thể có giá trị trả về hoặc không. Câu hỏi đặt ra là khi nào nên sử dụng hàm có giá trị trả về và khi nào thì không? Để trả lời câu hỏi này thì bạn hãy làm một vài ví dụ trước nhé.
Quay lại ví dụ ở phần 1, đó là một function không có giá trị trả về bởi không tồn tại lệnh return bên trong hàm. Nhưng với function dưới đây thì khác:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
def absolute_value(num): """This function returns the absolute value of the entered number""" if num > = 0 : return num else : return - num # Output: 2 print (absolute_value( 2 )) # Output: 4 print (absolute_value( - 4 )) |
Function này có nhiệm vụ tính giá trị truyệt đối của một số, sau đó trả kết quả về. Đấy, vấn đề nằm ở câu trả kết quả về, có nghĩa là nếu bạn muốn viết một function mà có trả kết quả về thì sử dụng lệnh return.
Ví dụ bạn cần viết chương trình kiểm tra một số có phải là số nguyên tố hay không thì bạn có sử dụng lệnh return để trả về TRUE hoặc FALSE.
5. Phạm vi của biến trong function
Trong function bạn có thể tạo thêm bao nhiêu biến cũng được, tuy nhiên các biến đó chỉ tồn tại bên trong function mà thôi, bạn không thể sử dụng nó ở bên ngoài.
Hãy xem ví dụ dưới đây, mình đã tạo ra một function và biến x
ở cả bên trong function và bên ngoài:
1
2
3
4
5
6
7
|
def my_func(): x = 10 print ( "Value inside function:" ,x) x = 20 my_func() print ( "Value outside function:" ,x) |
Tuy nhiên kết quả trong function sẽ trả về giá trị 10 bởi vì phạm vi của function là cục bộ, nó không nhận được biến x
ở bên ngoài. Kết quả sẽ như sau:
1
2
|
Value inside function: 10 Value outside function: 20 |
6. Lời kết
Như vậy là bạn đã học được sơ lược về cách tạo hàm (function) trong Python. Vẫn còn rất nhiều vấn đề liên quan đến function nhưng mình sẽ viết nó ở một bài khác, việc phân tán bài học như vậy sẽ giúp bạn dễ dàng năm bắt hơn. Chúc bạn học tốt và hẹn gặp lại ở bài tiếp theo.
Theo:https://freetuts.net