Để 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 được đ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, nó sẽ chia chúng nếu không 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
Một hàm lấy một hàm làm đối số, trả về một hàm dưới dạng kết quả hoặc cả hai được gọi là hàm bậc cao hơn
Đầ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
Đây chỉ là một bài viết khác trong loạt Hàm trong Python. Hôm nay chúng ta sẽ nói về câu lệnh return
Nếu bạn chưa đọc hai phần trước, vui lòng làm như vậy. Họ đây rồi
1] Giới thiệu về Chức năng
2] Các hàm có tham số
Mục lục
Các chức năng DO Something
Trong tất cả các ví dụ ở các phần trước của loạt bài về hàm, các hàm đã làm một việc gì đó [như in một số văn bản], nhưng chúng không trả về bất kỳ thứ gì. Hãy xem lại hàm inch_to_cm của chúng ta
def inch_to_cm[inches]:
print["{} inches = {} centimeters".format[inches, inches * 2.54]]
Chức năng này chỉ in một tin nhắn. Nhưng chúng ta không thể sử dụng kết quả trong tính toán hoặc nhúng nó vào một chuỗi chẳng hạn, vì kết quả không được trả về
Một tính năng rất hay của các hàm là chúng có thể trả về một số giá trị. Bằng cách này, chúng ta có thể sử dụng các hàm trong biểu thức
Tìm hiểu cách tạo các ứng dụng GUI đẹp mắt
bằng Python sử dụng khung Kivy
Toàn diện, dành cho người mới bắt đầu Kivy, dễ làm theo
Tải sách tại đây [PDF] hoặc trên Amazon.
sách điện tử / bìa mềm [đen trắng] / paperback [full color]
Các chức năng TRẢ LẠI một cái gì đó
Hãy sửa đổi hàm inch_to_cm của chúng ta để nó không in thông báo mà thay vào đó trả về một giá trị
________số 8_______Bây giờ, hàm trả về một số float, vì vậy nó có thể được sử dụng ở bất cứ đâu có thể có số float. Vài ví dụ
print["The diagonal is 52 inches, which is equal to {} cm.".format[inch_to_cm[52]]]
Đây là đầu ra
The diagonal is 52 inches, which is equal to 132.08 cm.
Hoặc một ví dụ khác
size = int[input["What diagonal in inches do you need? "]]
if size > 100:
print["Our maximum size is 100 inches, which is 254 cm."]
else:
print["OK, looks like it's {} cm.".format[inch_to_cm[size]]]
Một đầu ra có thể
What diagonal in inches do you need? 50
OK, looks like it's 127.0 cm.
Hoặc một đầu ra có thể khác
What diagonal in inches do you need? 125
Our maximum size is 100 inches, which is 254 cm.OK, looks like it's 50.8 cm.
Tạp chí Panda3D của bạn
Tạo các trò chơi tuyệt vời và các ứng dụng 3D khác
với Panda3D và Blender bằng Python
Nội dung hay, bài viết dễ theo dõi
Tải tạp chí tại đây [PDF].
Các hàm trả về nhiều giá trị
Một hàm có thể trả về chính xác một đối tượng, nhưng nó không nhất thiết phải là một đối tượng đơn giản như chuỗi, int hoặc float. Nó cũng có thể là một danh sách, bộ dữ liệu hoặc từ điển. Chúng ta có thể sử dụng tính năng này để làm cho hàm gián tiếp trả về nhiều giá trị. Giả sử chúng ta cần một hàm lấy danh sách các số làm tham số và trả về giá trị nhỏ nhất, lớn nhất và trung bình của tất cả các số. Chúng tôi sẽ làm điều đó theo hai cách
– Đầu tiên, hãy làm cho hàm trả về 3-tuple
def stats[numbers]:
minimum = min[numbers]
maximum = max[numbers]
average = sum[numbers] / len[numbers]
return [minimum, average, maximum]
print[stats[[1, 3, 7, 5]]]
Và đầu ra là
[1, 4.0, 7]
– Và bây giờ hãy làm cho hàm trả về một từ điển
def stats[numbers]:
minimum = min[numbers]
maximum = max[numbers]
average = sum[numbers] / len[numbers]
return {"min" : minimum, "average" : average, "max" : maximum}
print[stats[[1, 3, 7, 5]]]
Đây là đầu ra
def inch_to_cm[inches]:
return inches * 2.54
0Chúng ta có thể kiểm tra loại dữ liệu được trả về bằng cách sử dụng hàm type
def inch_to_cm[inches]:
return inches * 2.54
1Và kết quả là
def inch_to_cm[inches]:
return inches * 2.54
2Nếu chúng ta chỉ chuyển số liệu thống kê cho hàm loại
def inch_to_cm[inches]:
return inches * 2.54
3chúng tôi sẽ nhận được
def inch_to_cm[inches]:
return inches * 2.54
4Khóa học khởi động Python
Tìm hiểu kiến thức cơ bản về Python, bao gồm OOP
với rất nhiều bài tập, dễ làm theo
Khóa học hiện có trên Udemy.
Bốn trường hợp có thể xảy ra với câu lệnh return
Đối với câu lệnh return, chúng ta có thể có bốn tình huống
1] Không có câu trả lời
Trong trường hợp như vậy, hàm kết thúc sau khi câu lệnh cuối cùng trong thân hàm được thực thi. Hàm trả về một giá trị đặc biệt Không có
2] Có một câu lệnh return theo sau là một biểu thức
Trong trường hợp như vậy, câu lệnh return kết thúc việc thực thi hàm. Hàm trả về giá trị của biểu thức theo từ khóa return
3] Có một câu lệnh return nhưng không có biểu thức theo sau nó
Trong trường hợp này, hàm kết thúc và trả về giá trị đặc biệt Không có
4] Có nhiều hơn một câu lệnh return
Trong trường hợp như vậy, việc thực thi hàm kết thúc ngay khi câu lệnh return đầu tiên được thực thi
Các câu lệnh trả về không nhất thiết phải ở cuối hàm. Chúng có thể ở bất cứ đâu bên trong phần thân của hàm
Khóa học khởi động máy xay sinh tố
Tìm hiểu kiến thức cơ bản về mô hình 3D trong Blender
từng bước, dễ theo dõi, trực quan phong phú
Khóa học hiện có trên Udemy và trên Skillshare.
Nhiều câu lệnh trả về
Đây là một ví dụ về một hàm có nhiều câu lệnh trả về
def inch_to_cm[inches]:
return inches * 2.54
5Bây giờ chúng tôi có ba đường dẫn thực hiện có thể tùy thuộc vào độ tuổi được truyền dưới dạng đối số. Chỉ có một đường dẫn thực thi sẽ được thực hiện, vì vậy chỉ một câu lệnh return sẽ được thực thi. Hãy thử chức năng này trên đoạn mã sau
def inch_to_cm[inches]:
return inches * 2.54
6Trong vòng lặp for, chúng tôi đang lặp lại các khóa của từ điển. Chúng tôi sử dụng các giá trị từ từ điển làm đối số cho hàm age_descriptor. Đây là đầu ra
def inch_to_cm[inches]:
return inches * 2.54
7Câu lệnh if ternary sau khi trả về
Hàm trả về có thể có điều kiện. Bạn có thể sử dụng câu lệnh if bậc ba để quyết định cái gì sẽ được trả về. Hãy xem chức năng này với ba tham số
def inch_to_cm[inches]:
return inches * 2.54
8Hàm này trả về True nếu ba số được truyền dưới dạng đối số được sắp xếp từ nhỏ nhất đến lớn nhất. Nếu không, nó trả về Sai. Vì hàm trả về một giá trị boolean, chúng ta có thể sử dụng nó trong các câu điều kiện