Để lấy giá trị từ một hàm trong bất kỳ ngôn ngữ lập trình nào, chúng ta sử dụng câu lệnh return[]. Tương tự như vậy, trong Python, câu lệnh return[] được sử dụng để thoát khỏi một hàm và trả về một giá trị từ một hàm. Trong hướng dẫn này, chúng ta sẽ đọc về nhiều cách khác nhau để sử dụng các câu lệnh return[] trong Python
Mục lục
- Giới thiệu về câu lệnh return[]
- Trả về nhiều giá trị trong Python
- Đối số trong hàm return[]
- Hàm trả về một hàm khác
- Bớt tư tưởng
trả về [] trong Python
Câu lệnh return[], giống như trong các ngôn ngữ lập trình khác, kết thúc lời gọi hàm và trả về kết quả cho người gọi. Nó là một thành phần quan trọng trong bất kỳ hàm hoặc phương thức nào trong mã bao gồm từ khóa trả về và giá trị sẽ được trả về sau đó.
Một số điểm cần nhớ khi sử dụng return[].
- Các câu lệnh sau câu lệnh return[] không được thực thi
- không thể sử dụng câu lệnh return[] bên ngoài chức năng
- Nếu câu lệnh return[] không có bất kỳ biểu thức nào, thì giá trị NONE được trả về
Cú pháp return[] trong Python
def func_name[]:
statements....
return [expression]
Sử dụng câu lệnh return[] để trả về nhiều giá trị trong Python
Python cũng cung cấp tùy chọn trả về nhiều giá trị từ một hàm và để làm điều đó, người dùng chỉ cần thêm nhiều giá trị trả về được phân tách bằng dấu phẩy. Còn được gọi là một tuple, có thể được tạo có hoặc không sử dụng dấu []
Đầu vào
def statFun[a, b]:
difference = a-b
percent_diff = [difference/a]*100
return difference, percent_diff;
difference, percent_diff = statFun[]
print [difference]
print [percent_diff]
Ở đây, hàm statFun[] cung cấp cho các giá trị và bằng cách sử dụng tuple, chúng tôi trả về cả hai giá trị
đầu ra
8
20
return[] trong Python với một đối số
Trong Python, các đối số có thể được sử dụng với câu lệnh trả về. Để bắt đầu, đối số là tham số do người dùng cung cấp và như chúng ta biết, đối số là [các] giá trị đầu vào do người dùng cung cấp cho hàm
Đầu vào
def divNum[a, b]:
if b != 0
return a/b;
else:
return 0;
print [divNum[4, 2]]
print [divNum[2, 0]]
Ở đây, hàm divNum[] chấp nhận hai đối số và nếu đối số thứ hai khác 0 thì nó sẽ chia hai đối số này, ngược lại trả về 0.
đầu ra
2
0
Hàm trả về một hàm khác trong Python
Như chúng ta đã biết, các hàm được coi là đối tượng hạng nhất trong Python, do đó chúng ta có thể trả về một hàm từ một hàm khác. Đối tượng hạng nhất là một đối tượng có thể được gán cho một biến, được truyền dưới dạng đối số cho hàm hoặc được sử dụng làm giá trị trả về trong hàm.
Hàm nhận một hàm làm đối số, kết quả trả về một hàm hoặc cả hai được gọi là hàm bậc cao.
Đầu vào
def func_1[a]:
def func_2[b]:
return a-b
return func_2
x = func_1[100]
print ["The value of a-b is", x[50]]
def another_func[a]:
return a*10
def func[]:
return another_func
y = func[]
print ["\nThe value of a*b is" y[10]]
Đầu ra.
The value of a-b is 50
The value of a*b is 100
Bớt tư tưởng
Câu lệnh return gửi bất kỳ đối tượng nào từ hàm trở lại mã người gọi. Vì câu lệnh return là một phần quan trọng của bất kỳ hàm hoặc phương thức nào, nếu bạn học cách sử dụng nó đúng cách, bạn có thể chuyển sang các mã phức tạp. Mọi người có thể tìm hiểu thêm về các khái niệm Python tại đây
Trước tiên chúng ta hãy xem một câu trả lời ngắn trước khi đi sâu vào một ví dụ đơn giản để hiểu sự khác biệt và tương đồng giữa
8
20
3 và
8
20
4so sánh
Cả
8
20
5 và def f[]: for i in range[10]: print[i] if i>3: break f[]0 đều là từ khóa trong Python
- Từ khóa
3 kết thúc một hàm và chuyển một giá trị cho người gọi8 20
- Từ khóa
4 kết thúc vòng lặp ngay lập tức mà không cần làm gì khác. Nó có thể được sử dụng bên trong hoặc bên ngoài một chức năng8 20
8
20
3_______24Được sử dụng để kết thúc một chức năngĐược sử dụng để kết thúc một vòng lặp def f[]: for i in range[10]: print[i] if i>3: break f[]5 hoặc
def f[]: for i in range[10]: print[i] if i>3: break f[]6 Truyền một giá trị tùy chọn cho người gọi hàm [e. g. ,
def f[]: for i in range[10]: print[i] if i>3: break f[]7]Không chuyển bất cứ thứ gì ra “bên ngoài”
Trong khi họ phục vụ một mục đích khác, tôi. e. , kết thúc một chức năng vs kết thúc một vòng lặp, có một số trường hợp chúng có thể được sử dụng thay thế cho nhau
Các trường hợp sử dụng tương tự
Trường hợp sử dụng sau đây cho thấy lý do tại sao bạn có thể nhầm lẫn cả hai từ khóa
8
20
3 và
8
20
4. Trong cả hai trường hợp, bạn có thể sử dụng chúng để kết thúc một vòng lặp bên trong một hàm và quay lại bên ngoàiĐây là biến thể sử dụng
8
20
3
def statFun[a, b]:
difference = a-b
percent_diff = [difference/a]*100
return difference, percent_diff;
difference, percent_diff = statFun[]
print [difference]
print [percent_diff]
1Và đây là biến thể sử dụng
8
20
4def f[]: for i in range[10]: print[i] if i>3: break f[]
Cả hai đoạn mã đều thực hiện chính xác như nhau—in ra 5 giá trị đầu tiên 0, 1, 2, 3 và 4
đầu ra
def statFun[a, b]:
difference = a-b
percent_diff = [difference/a]*100
return difference, percent_diff;
difference, percent_diff = statFun[]
print [difference]
print [percent_diff]
3Tuy nhiên, đây là nơi mà sự giống nhau giữa hai từ khóa đó kết thúc. Hãy đi sâu vào một trường hợp sử dụng phổ biến hơn khi cả hai đều thực hiện các tác vụ khác nhau trong mã
Các trường hợp sử dụng khác nhau
Ví dụ sau sử dụng cả hai từ khóa
8
20
4 và
8
20
3. Nó sử dụng từ khóa
8
20
4 để kết thúc vòng lặp ngay khi biến vòng lặp
def statFun[a, b]:
difference = a-b
percent_diff = [difference/a]*100
return difference, percent_diff;
difference, percent_diff = statFun[]
print [difference]
print [percent_diff]
35 lớn hơn 3Vì vậy, dòng
def statFun[a, b]:
difference = a-b
percent_diff = [difference/a]*100
return difference, percent_diff;
difference, percent_diff = statFun[]
print [difference]
print [percent_diff]
36 không bao giờ được thực thi sau khi biến
def statFun[a, b]:
difference = a-b
percent_diff = [difference/a]*100
return difference, percent_diff;
difference, percent_diff = statFun[]
print [difference]
print [percent_diff]
35 đạt đến giá trị 4—vòng lặp kết thúcNhưng hàm không kết thúc vì
8
20
4 chỉ kết thúc vòng lặp chứ không kết thúc hàm. Đó là lý do tại sao câu lệnh
def statFun[a, b]:
difference = a-b
percent_diff = [difference/a]*100
return difference, percent_diff;
difference, percent_diff = statFun[]
print [difference]
print [percent_diff]
39 vẫn được thực thi và giá trị trả về của hàm là
def statFun[a, b]:
difference = a-b
percent_diff = [difference/a]*100
return difference, percent_diff;
difference, percent_diff = statFun[]
print [difference]
print [percent_diff]
80 [mà chúng tôi cũng in ra ở dòng cuối cùng]
def statFun[a, b]:
difference = a-b
percent_diff = [difference/a]*100
return difference, percent_diff;
difference, percent_diff = statFun[]
print [difference]
print [percent_diff]
8đầu ra
8
20
0Tóm lược
Từ khóa
8
20
3 khác và mạnh hơn từ khóa
8
20
4 vì nó cho phép bạn chỉ định một giá trị trả về tùy chọn. Nhưng nó chỉ có thể được sử dụng trong ngữ cảnh chức năng chứ không phải bên ngoài chức năng- Bạn sử dụng từ khóa
3 để trả lại giá trị cho người gọi hàm hoặc kết thúc toàn bộ hàm8 20
- Bạn sử dụng từ khóa
4 để dừng ngay một vòng lặp8 20
def f[]: for i in range[10]: print[i] if i>3: break f[]
5 hoặcdef f[]: for i in range[10]: print[i] if i>3: break f[]
6
🐍 Quy tắc. Chỉ khi bạn muốn thoát khỏi một vòng lặp bên trong một hàm và điều này cũng sẽ thoát khỏi toàn bộ hàm, bạn mới có thể sử dụng cả hai từ khóa. Trong trường hợp đó, tôi khuyên bạn nên sử dụng từ khóa
8
20
3 thay vì
8
20
4 vì nó mang lại cho bạn nhiều mức độ tự do hơn, tôi. e. , chỉ định giá trị trả về. Ngoài ra, nó rõ ràng hơn giúp cải thiện khả năng đọc mãCảm ơn bạn đã đọc toàn bộ hướng dẫn—nếu bạn muốn tiếp tục học hỏi, vui lòng tham gia học viện email của tôi. Nó vui. 🙂
Video đề xuất
Từ khóa trả về Python - Hướng dẫn minh họa đơn giản
Xem video này trên YouTube
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây