Truyền tham số và trả về giá trị trong Python
Trong Python, hàm là một phần quan trọng để tổ chức mã nguồn và tái sử dụng các khối mã. Khi làm việc với hàm, chúng ta có thể truyền tham số vào hàm để sử dụng trong quá trình thực thi và nhận giá trị trả về từ hàm để sử dụng sau khi hàm hoàn tất công việc.

1. Truyền tham số vào hàm
Khi định nghĩa một hàm trong Python, bạn có thể chỉ định các tham số mà hàm sẽ nhận. Các tham số này có thể được coi là các biến mà hàm sử dụng để thực hiện tác vụ của mình. Khi gọi hàm, bạn sẽ truyền các đối số vào để gán giá trị cho các tham số đó.
Cú pháp truyền tham số:
def tên_hàm(tham_số_1, tham_số_2):
# Các câu lệnh sử dụng tham số
return giá_trị
-
tên_hàm
: Tên hàm bạn muốn định nghĩa. -
tham_số_1, tham_số_2
: Các tham số của hàm, dùng để nhận giá trị khi gọi hàm.
Ví dụ 1: Truyền tham số vào hàm
def greet(name):
print(f"Hello, {name}!")
# Gọi hàm với đối số
greet("Alice")
greet("Bob")
Kết quả:
Hello, Alice!
Hello, Bob!
Ở ví dụ này, hàm greet
nhận tham số name
và in ra lời chào sử dụng tên đó. Khi gọi hàm, ta truyền các giá trị "Alice"
và "Bob"
vào hàm.
2. Truyền tham số mặc định
Python hỗ trợ truyền tham số với giá trị mặc định. Nếu khi gọi hàm không truyền tham số, giá trị mặc định sẽ được sử dụng.
Ví dụ 2: Truyền tham số mặc định
def greet(name="Guest"):
print(f"Hello, {name}!")
# Gọi hàm mà không truyền đối số
greet()
# Gọi hàm với đối số
greet("Alice")
Kết quả:
Hello, Guest!
Hello, Alice!
Ở ví dụ này, nếu không truyền đối số vào khi gọi hàm, Python sẽ sử dụng giá trị mặc định "Guest"
cho tham số name
.
3. Truyền tham số với kiểu dữ liệu khác nhau
Các tham số có thể là các kiểu dữ liệu khác nhau như số nguyên, chuỗi, danh sách, từ điển, v.v. Bạn có thể truyền bất kỳ kiểu dữ liệu nào vào tham số của hàm.
Ví dụ 3: Truyền tham số với kiểu dữ liệu khác nhau
def calculate_area(radius):
return 3.14 * radius * radius
def greet_person(name, age):
print(f"Hello, {name}! You are {age} years old.")
# Gọi hàm với kiểu dữ liệu khác nhau
area = calculate_area(5)
greet_person("Alice", 25)
print("Area of circle:", area)
Kết quả:
Hello, Alice! You are 25 years old.
Area of circle: 78.5
Hàm calculate_area
nhận tham số radius
và tính diện tích hình tròn. Hàm greet_person
nhận hai tham số name
và age
để in ra lời chào.
4. Trả về giá trị từ hàm
Khi hàm hoàn thành công việc của mình, nó có thể trả về một giá trị sử dụng từ khóa return
. Giá trị này có thể là bất kỳ kiểu dữ liệu nào như số, chuỗi, danh sách, từ điển, hoặc thậm chí là kết quả của một biểu thức tính toán.
Cú pháp trả về giá trị:
def tên_hàm(tham_số):
# Các câu lệnh sử dụng tham số
return giá_trị
-
return
: Từ khóa dùng để trả về giá trị từ hàm. -
giá_trị
: Giá trị được trả về từ hàm.
Ví dụ 4: Trả về giá trị từ hàm
def add(a, b):
return a + b
result = add(5, 3)
print(result)
Kết quả:
8
Hàm add
nhận hai tham số a
và b
, cộng chúng lại và trả về kết quả. Kết quả trả về được lưu vào biến result
và in ra màn hình.
5. Trả về nhiều giá trị
Hàm trong Python có thể trả về nhiều giá trị bằng cách tách chúng bằng dấu phẩy. Các giá trị này sẽ được trả về dưới dạng tuple.
Ví dụ 5: Trả về nhiều giá trị
def calculate(a, b):
return a + b, a - b, a * b, a / b
result = calculate(10, 2)
print(result)
Kết quả:
(12, 8, 20, 5.0)
Hàm calculate
trả về bốn giá trị: tổng, hiệu, tích và thương của a
và b
. Những giá trị này được trả về dưới dạng một tuple.
**6. Truyền tham số theo kiểu *args và kwargs
Python cũng hỗ trợ truyền tham số theo cách linh hoạt hơn với *args
(để nhận nhiều đối số không xác định) và **kwargs
(để nhận tham số theo dạng từ điển).
**Ví dụ 6: Truyền tham số với *args và kwargs
def print_args(*args):
for arg in args:
print(arg)
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
# Gọi hàm với *args và **kwargs
print_args(1, 2, 3, 4)
print_kwargs(name="Alice", age=25)
Kết quả:
1
2
3
4
name: Alice
age: 25
Ở ví dụ này, *args
cho phép nhận một số lượng tham số không xác định và **kwargs
nhận các tham số dưới dạng từ điển (key-value).
Kết luận
- Trong Python, bạn có thể truyền tham số vào hàm để thực hiện các tác vụ cụ thể.
- Hàm có thể trả về một giá trị hoặc nhiều giá trị, tùy thuộc vào yêu cầu.
- Bạn có thể sử dụng tham số mặc định,
*args
, và**kwargs
để linh hoạt trong việc truyền tham số cho hàm.
Việc hiểu và sử dụng thành thạo các kỹ thuật truyền tham số và trả về giá trị trong Python giúp bạn xây dựng các hàm mạnh mẽ và linh hoạt, từ đó cải thiện khả năng tái sử dụng mã nguồn và tổ chức chương trình một cách hiệu quả.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com