Return trong python và giá trị trả về | Laptrinhcanban.com

Return trong python và giá trị trả về

Hướng dẫn cách dùng return trong python. Bạn sẽ học được cách dùng return để trả về giá trị trong hàm Python, cách xử lý câu lệnh return trong hàm trả về nhiều giá trị trong Python, cũng như cách sử dụng return để kết thúc hàm trong Python sau bài học này.

Return trong python là gì

Return trong python là một từ khóa (keyword) dùng để trả về giá trị từ hàm. Return có tác dụng kết thúc hàm và trả lại điều khiển cũng như kết quả xử lý hàm cho người gọi. Chúng ta có thể sử dụng hoặc lược bỏ return khi khai báo hàm trong python, và một hàm có chứa return trong python được gọi là hàm trả về giá trị trong python.
Return trong python

Cách dùng return trong python

Tùy thuộc vào việc hàm có trả về giá trị hay không mà chúng ta có những cách sử dụng return trong python khác nhau.

Cách dùng return trong hàm trả về giá trị

Khi sử dụng return trong hàm trả về giá trị trong python, chúng ta viết giá trị trả về của hàm đằng sau lệnh return như sau:

def function():
    return giá trị trả về

x = function()

Ví dụ:

def add(x, y):
z = x + y
return z

z = add(1, 2)
print(z)
#> 3

Cách dùng return trong hàm không trả về giá trị

Khi sử dụng return trong hàm không trả về giá trị trong python, chúng ta chỉ viết lệnh return vào cuối hàm như sau:

def function():
    return

x = function()

Ví dụ cụ thể:

def myfunc():
print("Hello")
return

myfunc()
#> Hello

Lưu ý, khi chúng ta khai báo một hàm không trả về giá trị trong python, chúng ta cũng có thể lược bỏ đi return. Ví dụ ở trên có thể viết lại như sau:

def myfunc():
print("Hello")

myfunc()
#> Hello

Lại nữa, mặc dù các hàm không trả về giá trị trong python không trả về một giá trị nào tương ứng với các giá trị truyền vào hàm, tuy nhiên điều đó không có nghĩa là các hàm này không trả về bất cứ thứ gì cả. Thực chất, một giá trị mặc định None sẽ được trả về khi chúng ta không chỉ định một giá trị cụ thể trả về từ hàm. Ví dụ:

def myfunc():
print("Hello")

x= myfunc()
#> Hello

print(x)
#> None

return trả về kết quả biểu thức

Ở phần trên chúng ta đã biết cách dùng return để trả về một giá trị cụ thể rồi. Tuy nhiên ngoài cách trả về một giá trị cụ thể như một số, một ký tự v.v.. như vậy thì chúng ta cũng có thể sử dụng return để trả về kết quả của một biểu thức tính toán.

Ví dụ, chúng ta có thể trả về kết quả phép cộng bằng cách viết trực tiếp biểu thức tính toán sau lệnh return như sau:

def add(x, y):
return x + y

z = add(1, 2)
print(z)
#> 3

Hoặc là chúng ta có thể trả về các giá trị true, false bằng cách viết trực tiếp phép so sánh sau lệnh return như sau:

def chanle(x):
return 'chẵn' if x % 2 == 0 else 'lẻ'

z = chanle(1)
print(z)
#>> lẻ

Cách viết biểu thức trên được gọi là toán tử 3 ngôi trong python, là một loại toán tử giúp rút gọn các lệnh điều kiện, giúp code C gọn gàng và tiết kiệm công sức viết hơn.

Hàm trả về nhiều giá trị trong Python

Về cơ bản, chúng ta chỉ có thể chỉ định một giá trị trả về đằng sau lệnh return. Tuy nhiên chúng ta cũng có thể dễ dàng trả về nhiều giá trị trong hàm Python bằng cách lưu giữ các giá trị này vào một đối tượng chứa nhiều phần tử như là một tule hay một list chẳng hạn, sau đó chỉ định tuple hay list này là giá trị trả về sau lệnh return.

Sử dụng return để trả về nhiều giá trị được lưu giữ trong list

Chúng ta có thể trả về nhiều giá trị trong hàm Python bằng cách lưu giữ các giá trị này vào một list và chỉ định list đó là giá trị trả về sau lệnh return. Ví dụ:

def myfunc():
name = "Kiyoshi"
old = 30
return [name, old]

Sau đó, chúng ta có thể truy cập vào phần tử trong list này để lấy ra các giá trị trả về như sau:

x = myfunc()

print(x[0])
#> Kiyoshi

print(x[1])
#> 30

Sử dụng return để trả về nhiều giá trị được phân tách bằng dấu phẩy

Chúng ta có thể trả về nhiều giá trị trong hàm Python bằng cách lưu giữ các giá trị này vào một tuple và chỉ định list đó là giá trị trả về sau lệnh return. Sau đó bằng cách truy cập vào phần tử trong tuple python, chúng ta có thể lấy ra các giá trị trả về như ví dụ sau:

def myfunc():
name = "Kiyoshi"
old = 30
return (name, old)

x = myfunc()
print(x[0])
#> Kiyoshi

print(x[1])
#> 30

Tuy nhiên khác với cách sử dụng list ở trên, với tuple chúng ta có thể lược bỏ đi cặp dấu ngoặc () khi chỉ định tuple. Do đó, chúng ta có thể ghi trực tiếp các giá trị trả về của hàm đằng sau câu lệnh return như sau:

def myfunc():
name = "Kiyoshi"
old = 30
return name, old

Lúc này, kết quả trả về cũng vẫn là một tuple như sau:

x = myfunc()

print(type(x))
#> <class 'tuple'>
print(x[0])
#> Kiyoshi

Tuy nhiên, thêm một điều kỳ diệu nữa, là bằng cách lợi dụng chức năng Unpack trong python, chúng ta có thể gán trực tiếp các giá trị trả về vào các biến khác nhau như sau:

a,b = myfunc()
print(a)
#> Kiyoshi

print(b)
#> 30

Tóm lại, bằng cách sử dụng tuple và chức năng unpack trong python, chúng ta có thể dễ dàng trả về nhiều giá trị trong hàm Python đơn giản như sau:

def myfunc():
name = "Kiyoshi"
old = 30
return name, old

a, b = myfunc()

Sử dụng return để kết thúc hàm

Ngoài việc trả về giá trị, câu lệnh return cũng được sử dụng để kết thúc quá trình xử lý của hàm. Bằng cách sử dụng return, bạn có thể 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ụ, chúng ta có thể kết thúc một hàm tuỳ thuộc vào giá trị nhập vào hàm đó như sau:

def checkNum(num):
if (num > 10):
return "Gia tri qua lon"
elif (num < 1):
return "Gia tri qua nho"
else:
return "Gia tri trong pham vi tu 1 den 10"

print("num=",3, checkNum(3))
print("num=",-3, checkNum(3))
print("num=",30, checkNum(3))

Kết quả:

num= 3 Gia tri trong pham vi tu 1 den 10
num= -3 Gia tri trong pham vi tu 1 den 10
num= 30 Gia tri trong pham vi tu 1 den 10

Bạn có thể thấy tuỳ thuộc vào giá trị truyền hàm vào, mà hàm có thể được kết thúc tại theo các điều kiện khác nhau, bằng cách sử dụng câu lệnh return như trên.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách dùng return để trả về giá trị trong hàm python, cũng như xử lý trong hàm trả về nhiều giá trị trong Python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.