Hàm (function) và cách xây dựng hàm trong Python

1. Hàm (function) là gì?

Hàm (function) là một đoạn chương trình được đặt tên, đầu vào và đầu ra. Hàm có chức năng giải quyết một số vấn đề chuyên biệt cho chương trình chính. Hàm có thể được gọi nhiều lần (tái sử dụng) với các tham số khác nhau.

Định nghĩa hàm (function) trong Python

Ví dụ:

def welcomeGochocit():
  print("Hi all, Welcome to Gochocit.com!")

welcomeGochocit()
Kết quả
Hi all, Welcome to Gochocit.com!

2. Xây dựng hàm và gọi hàm trong Python

Cú pháp xây dựng hàm trong Python:

def function_name(parameters):
    """docstring"""
    statement(s)
    return expression

1. Sử dụng từ khóa def để khai báo và định nghĩa một hàm.

2. function_name là tên hàm. Các đặt tên hàm tuân thủ theo quy tắc đặt tên định danh (identifier).

3. parameters là các tham số mà cung cấp giá trị đầu vào cho hàm. Các tham số này có thể có hoặc không.

4. Kết thúc dòng khai báo hàm là dấu hai chấm :.

5. Thân hàm bắt đầu bằng thụt đầu dòng (indentation).

6. Có thể sử dụng docstring để mô tả chức năng của hàm. Docstring trong thân hàm có thể có hoặc không.

7. Trong thân hàm có thể có nhiều câu lệnh (statement). Mỗi câu lệnh bắt đầu bằng thụt đầu dòng (indentation).

8. Một hàm thì có thể có giá trị trả về với câu lệnh return. Nhưng không bắt buộc mỗi hàm đều phải có câu lệnh return.

def sum(a, b):
    """Plus a and b"""
    c = a + b
    return c

Trong ví dụ trên, tên hàm là sum với các tham số ab. Docstring là “””Plus a and b”””. Hàm này sum này đơn giản nên chỉ có 1 câu lệnh là c = a + b. Hàm có kết quả trả về với câu lệnh return c.

Gọi hàm (function) trong Python

Để gọi hàm, chúng ta chỉ cần sử dụng tên hàm và truyền tham số thích hợp là được.

def sum(a, b):
    """Plus a and b"""
    c = a + b
    return c

num1 = 1
num2 = 9
s = sum(num1, num2)
print("sum = ", s)
Kết quả
sum =  10

Lưu ý: Hàm phải luôn luôn được định nghĩa trước khi gọi hàm, nếu không sẽ gây ra lỗi. Ví dụ:

hello()

def hello():
    print("Hello all!")

Kết quả

NameError: name 'hello' is not defined.

3. Kiểu trả về của hàm trong Python

Lệnh return giúp trả về một giá trị hoặc nhiều giá trị từ hàm. Ví dụ:

def myFunction1():
    val = 5.9
    return val
a  = myFunction1()
print("#Result of myFunction1")
print("a = ", a)

def myFunction2():
    a = list(range(0, 5))
    b = 10
    return a, b, 9
x, y, z = myFunction2()
print("#Result of myFunction2")
print("x = ", x)
print("y = ", y)
print("z = ", z)
Kết quả
#Result of myFunction1
a =  5.9
#Result of myFunction2
x =  [0, 1, 2, 3, 4]
y =  10
z =  9

Trong ví dụ trên, chúng ta thấy có thể một hàm (function) có thể trả về nhiều biến giá trị với câu lệnh return. Mỗi biến giá trị cách nhau bởi dấu phẩy ,.

Trong một số trường hợp, lệnh return được sử dụng để thoát khỏi hàm. Ví dụ:

def absoluteFunction(num):
    """This function returns the absolute
    value of the entered number"""
    if num >= 0:
        return num
    else:
        return -num
print("#Result of absoluteFunction")
print(absoluteFunction(1))
print(absoluteFunction(-5))

def myFunction(num):
    if(num<=0):
        print("num must be greater than 0")
        return
    num = num * 5
    print(num)
print("#Result of myFunction with num > 0")
myFunction(9)
print("#Result of myFunction with num <= 0")
myFunction(-1)
Kết quả
#Result of absoluteFunction
1
5
#Result of myFunction with num > 0
45
#Result of myFunction with num <= 0
num must be greater than 0

Trong ví dụ trên, hàm absoluteFunction có lệnh return vừa giúp trả về giá trị cho hàm vừa làm thoát khỏi hàm. Hàm myFunction thì lệnh return chỉ giúp thoát khỏi hàm mà không trả về giá trị cho hàm.

4. Hàm trong hàm (nested function) trong Python

Python cho phép định nghĩa một hàm bên trong một hàm khác. Chúng ta gọi là inner function hoặc nested function. Ví dụ:

def outerFunction(year):
    name = 'Gochocit.com'
    msg = 'Happy New Year'
    #define an inner function
    def innerFunction():
        print(name, ", ", msg, ' ', year, ' to everyone!', sep='')
    #call inner function
    innerFunction()

y = 2022
outerFunction(y)
Kết quả
Gochocit.com, Happy New Year 2022 to everyone!

Các inner function có thể truy cập các biến trong outer function.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Vòng lặp trong Python: Sử dụng câu lệnh break, continue, passTham số (parameter) của hàm trong Python >>
Chia sẻ trên mạng xã hội:

Tác giả Vinh Lê

Vinh Lê hiện đang là biên tập viên tại Góc Học IT.

Bài viết của Vinh Lê

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.