1. Câu lệnh Return trả về giá trị cho hàm Python

Câu lệnh return được sử dụng để kết thúc việc thực hiện lệnh gọi hàm và trả về kết quả (giá trị của biểu thức theo sau từ khóa return) cho trình gọi hàm. Khi chương trình chạy và thực thi đến dòng lệnh return thì các câu lệnh sau câu lệnh return sẽ không được thực thi.

Ví dụ sử dụng câu lệnh return để trả về kết quả của phép tính a – b trong hàm sub(a,b) – với a, b là hai đối số đầu vào của hàm sum()

# Khai bao hai bien a, b
a = 5
b = 2

# Khai bao ham sub(a,b)
def sub(a,b):
    # Tra ve gia tri a - b cho ham sub(a,b)
    return a - b

# Gan bien result bang gia tri cua ham sub(5,2)
result = sub(5,2)
# Hien thi bien result
print(result)

Kết quả:

3

Ở ví dụ trên, ta đã sử dụng câu lệnh return để trả về giá trị số cho hàm. Và tuy nhiên, ta cũng có thể sử dụng câu lệnh return trong hàm để đánh giá và kiểm tra một biểu thức sau đó sẽ trả về một giá trị boolean là true hoặc false cho hàm.

# Khai bao hai bien a, b
a = 5
b = 2

# Khai bao ham is_true(expression)
def is_true(expression):
    # Kiem tra va tra ve dung/sai cho bieu thuc expression
    return bool(expression)

# Bieu thuc a lon hon b
expression = a > b

# Gan bien result bang gia tri cua ham is_true(expression)
result = is_true(expression)

# Hien thi gia tri result
print(result)

Kết quả:

True

2. Trả về nhiều giá trị bằng câu lệnh Return trong Python

Chúng ta có thể sử dụng câu lệnh return để thực hiện trả về đồng thời hai hoặc nhiều giá trị trong một hàm. Các giá trị này có thể là trả về cùng lúc nhiều các biến hay có thể đồng thời trả về một List, Set, Tuple chứa một tập hợp nhiều các giá trị….

Ví dụ dưới đây, sử dụng câu lệnh return trả về đồng thời 2 hai biến name, age trong hàm và sau đó hiển thị lần lượt hai giá trị đó ra màn hình:

# Khai bao ham myFun()
def myFun():
    name = "Laptrinhtudau.com"
    age = 20
    # Tra ve hai gia tri
    return name, age

# Gan hai gia tri tra ve cua ham vao hai bien name, age
(name, age) = myFun()

# Hien thi gia tri cua hai bien name va age
print("Ten: {0}".format(name))
print("Tuoi: {0}".format(age))

Kết quả:

Ten: Laptrinhtudau.com
Tuoi: 20

Chúng ta cũng có thể sử dụng câu lệnh return để trả về nhiều giá trị trong một hàm thông qua việc trả về dưới dạng một List bằng cách khai báo thêm dấu ngoặc vuông “[]” trong câu lệnh return như sau:

# Khai bao ham myFun()
def myFun():
    name = "Laptrinhtudau.com"
    age = 20
    # Tra ve list co hai phan tu la [name,age]
    return [name, age]

# Gan gia tri tra ve cua ham myFun() vao listA
listA = myFun()

# Hien thi listA
print("ListA = {0}".format(listA))

# Hien thi gia tri cua hai bien name va age thong qua listA
print("Ten: {0}".format(listA[0]))
print("Tuoi: {0}".format(listA[1]))

Kết quả:

ListA = [‘Laptrinhtudau.com’, 20]
Ten: Laptrinhtudau.com
Tuoi: 20

3. Kết thúc hàm bằng câu lệnh Return trong Python

Như ban đầu tôi đã đề cập, “các câu lệnh sau câu lệnh return sẽ không được thực thi”. Như vậy ta có thể hiển rằng câu lệnh return sẽ dùng để kết thúc một hàm. Chúng ta có thể sử dụng câu lệnh return để kết thúc một hàm tại một thời điểm nào đó khi đã thoả mãn một điều kiện ban đầu.

Ví dụ, ta có thể kết thúc hàm bằng câu lệnh return khi kiểm tra giá trị đầu vào là số chẵn trong hàm:

# Khai bao bien x
x = 10

# Khai bao ham chanle(x)
def chanle(x):
    if (x % 2 == 0):
        return "La so chan"
    elif(x % 2 != 0):
        return "Khong phai so chan"
    else:
        return "So khong hop le"

# Hien thi gia tri cua x trong ham chanle(x)
print(chanle(x))

Kết quả:

La so chan

Ngoài ra, để kết thúc hàm ta chỉ cần khai báo câu lệnh return mà không cần kèm theo giá trị nào đi kèm theo phía sau như sau:

# Khai bao bien x
x = 10

# Khai bao ham chanle(x)
def chanle(x):
    if (x % 2 == 0):
        return # Ket thuc ham 
    elif (x % 2 != 0):
        print("Khong la so chan")
    else:
        print("So khong hop le")

# Hien thi gia tri cua x trong ham chanle(x)
print(chanle(x))

Kết quả:

None

Chương trình trên chỉ kết thúc hàm bằng câu lệnh return mà không có giá trị nào được trả về cho hàm, vì vậy khi gọi và hiển thị hàm print(chanle(x)) thì giá trị hiển thị là None – ta có thể hiểu là không có giá trị nào được trả về, câu lệnh chỉ thực hiện việc kết thúc hàm thông qua câu lệnh return.

Chú ý: Không thể sử dụng câu lệnh return bên ngoài hàm.