Bài 8.1. Python - Định nghĩa một hàm

Dưới đây là một hàm đơn giản có tên greet_user() in ra một lời chào:

def greet_user():
    """Hiển thị một lời chào đơn giản."""
    print("Hello!")
greet_user()

Ví dụ này cho thấy cấu trúc đơn giản nhất của một hàm. Dòng đầu tiên sử dụng từ khóa def để thông báo cho Python rằng bạn đang định nghĩa một hàm. Đây là định nghĩa hàm, cho Python biết tên của hàm và, nếu có, loại thông tin mà hàm cần để thực hiện công việc của nó. Dấu ngoặc đơn giữ thông tin đó. Trong trường hợp này, tên của hàm là greet_user(), và nó không cần thông tin nào để thực hiện công việc của nó, vì vậy dấu ngoặc đơn trống. (Dù vậy, dấu ngoặc đơn vẫn bắt buộc.) Cuối cùng, định nghĩa kết thúc bằng dấu hai chấm.

Bất kỳ dòng thụt lề nào theo sau def greet_user(): tạo thành thân hàm. Văn bản trên dòng thứ hai là một chú thích gọi là docstring, mô tả những gì hàm làm. Khi Python tạo tài liệu cho các hàm trong chương trình của bạn, nó tìm kiếm một chuỗi ngay sau định nghĩa hàm. Các chuỗi này thường được bao quanh bởi dấu ngoặc kép ba, cho phép bạn viết nhiều dòng.

Dòng print("Hello!") là dòng mã duy nhất trong thân hàm này, vì vậy greet_user() chỉ có một công việc: in ra "Hello!".

Khi bạn muốn sử dụng hàm này, bạn phải gọi nó. Một lệnh gọi hàm yêu cầu Python thực thi mã trong hàm. Để gọi một hàm, bạn viết tên của hàm, theo sau là bất kỳ thông tin cần thiết nào trong dấu ngoặc đơn. Vì không cần thông tin nào ở đây, việc gọi hàm của chúng ta đơn giản như nhập greet_user(). Như mong đợi, nó in ra "Hello!":

Hello!

Truyền thông tin cho hàm

Nếu bạn sửa đổi hàm greet_user() một chút, nó có thể chào người dùng theo tên. Để hàm làm điều này, bạn nhập username trong dấu ngoặc đơn của định nghĩa hàm tại def greet_user(). Bằng cách thêm username ở đây, bạn cho phép hàm chấp nhận bất kỳ giá trị nào của username mà bạn chỉ định. Hàm bây giờ mong đợi bạn cung cấp một giá trị cho username mỗi khi bạn gọi nó. Khi bạn gọi greet_user(), bạn có thể truyền cho nó một tên, chẳng hạn như 'jesse', bên trong dấu ngoặc đơn:

def greet_user(username):
    """Hiển thị một lời chào đơn giản."""
    print(f"Hello, {username.title()}!")
greet_user('jesse')

Nhập greet_user('jesse') gọi hàm greet_user() và cung cấp cho hàm thông tin cần thiết để thực thi lệnh print(). Hàm chấp nhận tên bạn đã truyền cho nó và hiển thị lời chào cho tên đó:

Hello, Jesse!

Tương tự, nhập greet_user('sarah') gọi hàm greet_user(), truyền cho nó 'sarah', và in ra "Hello, Sarah!". Bạn có thể gọi greet_user() bao nhiêu lần tùy thích và truyền cho nó bất kỳ tên nào bạn muốn để tạo ra đầu ra dự đoán được mỗi lần.

Đối số và tham số

Trong hàm greet_user() trước đó, chúng ta đã định nghĩa greet_user() để yêu cầu một giá trị cho biến username. Khi chúng ta gọi hàm và cung cấp cho nó thông tin (tên của một người), nó in ra lời chào phù hợp.

Biến username trong định nghĩa của greet_user() là một ví dụ về tham số, một mẩu thông tin mà hàm cần để thực hiện công việc của nó. Giá trị 'jesse' trong greet_user('jesse') là một ví dụ về đối số. Một đối số là một mẩu thông tin được truyền từ một lệnh gọi hàm đến một hàm. Khi chúng ta gọi hàm, chúng ta đặt giá trị mà chúng ta muốn hàm làm việc với trong dấu ngoặc đơn. Trong trường hợp này, đối số 'jesse' đã được truyền cho hàm greet_user(), và giá trị đã được gán cho tham số username.

Comments

There are no comments at the moment.