Posted in

Tìm hiểu Functions trong Python: Khái niệm, cú pháp và ví dụ minh họa

Function in Python
Function in Python

Trong thế giới lập trình, có một nguyên tắc vàng mà mọi lập trình viên đều phải tuân thủ: không lặp lại chính mình (Don’t Repeat Yourself – DRY). Thay vì viết đi viết lại cùng một đoạn mã nhiều lần, ta cần chia nhỏ chương trình thành các khối logic độc lập, dễ tái sử dụng. Những khối đó chính là hàm (functions).

Python, một ngôn ngữ nổi tiếng với triết lý đơn giản và dễ đọc, xem function như “viên gạch nền tảng” để xây dựng phần mềm. Từ những chương trình nhỏ chỉ vài dòng code, đến những ứng dụng phức tạp hàng nghìn dòng, functions luôn hiện diện để giúp code trở nên rõ ràng, gọn gàng và dễ quản lý.

Trong bài viết này, chúng ta sẽ đi từ khái niệm cơ bản đến cách định nghĩa và sử dụng function trong Python, bao gồm: cú pháp, tham số, giá trị trả về, phạm vi biến… Bài viết này sẽ đặt nền móng vững chắc để bạn có thể tiến tới những kỹ thuật nâng cao trong phần tiếp theo.

1. Function trong Python là gì?

Function là một khối lệnh có tên, được định nghĩa để thực hiện một nhiệm vụ cụ thể. Khi cần, ta chỉ cần gọi tên function đó thay vì viết lại toàn bộ đoạn mã.

1.1. Lợi ích của function

  • Tái sử dụng code: viết một lần, dùng nhiều nơi.
  • Giảm trùng lặp: tránh copy–paste logic giống nhau.
  • Dễ bảo trì: sửa logic trong function → mọi nơi gọi hàm đều được cập nhật.
  • Chia nhỏ vấn đề: giúp chương trình lớn trở nên dễ quản lý hơn.

1.2. Ví dụ so sánh

Không dùng function:

# In ra tổng của 3 cặp số
a, b = 5, 7
print(a + b)

x, y = 10, 15
print(x + y)

m, n = 100, 250
print(m + n)

Dùng function:

def sum_two_numbers(a, b):
    """Return the sum of two numbers"""
    return a + b

print(sum_two_numbers(5, 7))  # Output: 12

Rõ ràng, code có function ngắn gọn, dễ đọc và dễ mở rộng hơn rất nhiều.

2. Cú pháp định nghĩa function trong Python

Trong Python, một function được định nghĩa bằng từ khóa def:

def function_name(parameters):
    """Docstring describing the function"""
    # Function body
    return value
  • function_name: tên hàm (thường viết chữ thường, dùng dấu gạch dưới _ nếu nhiều từ).
  • parameters: danh sách tham số truyền vào (có thể có hoặc không).
  • return: giá trị trả về (có thể có hoặc không).
  • docstring: chuỗi mô tả ngắn gọn công dụng của hàm.

Ví dụ cơ bản

def greet(name):
    """Return a greeting message"""
    return f"Hello, {name}!"

print(greet("KienThucMo"))  # Output: Hello, KienThucMo!

3. Các loại function trong Python

3.1. Built-in Functions

Python có hơn 60 hàm tích hợp sẵn. Một số phổ biến:

  • print() – in dữ liệu ra màn hình.
  • len() – lấy độ dài của chuỗi, list, tuple…
  • type() – kiểm tra kiểu dữ liệu.
  • sum() – tính tổng các phần tử iterable.
  • range() – tạo dãy số.

Ví dụ:

numbers = [1, 2, 3, 4]
print(len(numbers))   # 4
print(sum(numbers))   # 10
print(type(numbers))  # <class 'list'>

3.2. User-defined Functions

Lập trình viên có thể tự định nghĩa function để xử lý logic riêng.

def square(x):
    """Return the square of a number"""
    return x * x

print(square(5))  # 25

4. Parameters và Arguments

Python hỗ trợ nhiều cách truyền dữ liệu vào function.

4.1. Positional arguments

Truyền theo thứ tự.

def introduce(name, age):
    print(f"My name is {name}, I am {age} years old.")

introduce("Tom", 20)  
# Output: My name is Tom, I am 20 years old.

4.2. Keyword arguments

Truyền theo tên tham số, không phụ thuộc thứ tự.

introduce(age=22, name="Linda")  
# Output: My name is Linda, I am 22 years old.

4.3. Default arguments

Tham số có giá trị mặc định.

def greet(name, age=18):
    print(f"Hello {name}, you are {age} years old.")

greet("Alice")       # age = 18
greet("Bob", 25)     # age = 25

4.4. Arbitrary arguments

  • *args: nhận nhiều đối số dưới dạng tuple.
  • **kwargs: nhận nhiều đối số dưới dạng dictionary.
def sum_all(*args):
    """Return the sum of all arguments"""
    return sum(args)

print(sum_all(1, 2, 3, 4))  # 10


def show_info(**kwargs):
    """Print all key-value pairs"""
    for key, value in kwargs.items():
        print(key, ":", value)

show_info(name="Anna", age=20, city="New York")

5. Return values

Function có thể trả về:

  • None nếu không có return.
  • Một giá trị duy nhất.
  • Nhiều giá trị (tuple).

Example 1: No return

def say_hello():
    print("Hello!")

result = say_hello()
print(result)  # None

Example 2: Multiple return values

def calculate(a, b):
    sum_ = a + b
    diff = a - b
    return sum_, diff

x, y = calculate(10, 5)
print(x, y)  # 15 5

6. Scope và Lifetime của biến

6.1. Local vs Global

  • Local variable: chỉ tồn tại trong function.
  • Global variable: khai báo ngoài function, có thể truy cập ở mọi nơi.
x = 10  # global variable

def demo():
    x = 5  # local variable
    print(x)

demo()    # 5
print(x)  # 10

6.2. Global và Nonlocal

Dùng global hoặc nonlocal để thay đổi biến bên ngoài function.

count = 0

def increase():
    global count
    count += 1

increase()
print(count)  # 1

7. Kết luận

Hàm (function) là một trong những trụ cột quan trọng trong Python, đóng vai trò then chốt trong việc xây dựng các chương trình có cấu trúc rõ ràng và dễ bảo trì. Việc nắm vững và sử dụng thành thạo hàm mang lại nhiều lợi ích, bao gồm:

  • Giúp mã nguồn ngắn gọn, dễ đọc và dễ hiểu hơn.
  • Hạn chế sự lặp lại, từ đó nâng cao khả năng tái sử dụng và bảo trì.
  • Cho phép tổ chức chương trình thành các khối logic tách biệt, tạo nền tảng cho việc mở rộng và phát triển ứng dụng phức tạp.

Trong bài viết này, chúng ta đã đi qua các nội dung trọng tâm sau:

  • Khái niệm và cú pháp định nghĩa hàm trong Python.
  • Phân loại hàm: built-in functionuser-defined function.
  • Các cách truyền tham số (parameters/arguments).
  • Cơ chế trả về giá trị từ hàm.
  • Phạm vi (scope) và vòng đời (lifetime) của biến.

Việc hiểu sâu và ứng dụng linh hoạt các khía cạnh trên sẽ giúp bạn viết code Python hiệu quả hơn, đồng thời tạo nền móng vững chắc để tiến xa trong quá trình học tập và phát triển kỹ năng lập trình.

8. Tài liệu tham khảo

  1. Python Software Foundation. (n.d.). The Python Tutorial: Defining Functions. Python.org. Retrieved September 27, 2025, from https://docs.python.org/3/tutorial/controlflow.html#defining-functions
  2. Sweigart, A. (2019). Automate the Boring Stuff with Python (2nd ed.). No Starch Press.
  3. Lutz, M. (2013). Learning Python (5th ed.). O’Reilly Media.
  4. Matthes, E. (2019). Python Crash Course (2nd ed.). No Starch Press.

Leave a Reply

Your email address will not be published. Required fields are marked *