Kiểu dữ liệu Function trong Python - Return

Lập trình Python cơ bản

5.0 (11 đánh giá)
Tạo bởi I Hate Python Team Cập nhật lần cuối 5 năm trước 61.711 lượt xem 98 bình luận
Tác giả/Dịch giả: I Hate Python Team
Học nhanh

Danh sách bài học

01. Giới thiệu ngôn ngữ lập trình Python 02. Cài đặt môi trường Python 03. Cách chạy chương trình Python 04. Cách ghi chú trong Python 05. Biến trong Python 06. Kiểu dữ liệu số trong Python 07. Kiểu dữ liệu chuỗi trong Python - Phần 1 08. Kiểu dữ liệu chuỗi trong Python - Phần 2 09. Kiểu dữ liệu chuỗi trong Python - Phần 3 10. Kiểu dữ liệu chuỗi trong Python - Phần 4 11. Kiểu dữ liệu chuỗi trong Python - Phần 5 12. Kiểu dữ liệu List trong Python - Phần 1 13. Kiểu dữ liệu List trong Python - Phần 2 14. Kiểu dữ liệu Tuple trong Python 15. Sự khác nhau về toán tử của Hashable object và Unhashable object trong Python 16. Kiểu dữ liệu Set trong Python 16. Kiểu dữ liệu Set trong Python – Phần 2 17. Kiểu dữ liệu Dict trong Python - Phần 1 18. Kiểu dữ liệu Dict trong Python - Phần 2 19. Xử lý file trong Python 20. Iteration và một số hàm hỗ trợ cho iteration object trong Python 21. Nhập xuất trong Python - Hàm xuất 22. Nhập xuất trong Python - Hàm nhập 23. Kiểu dữ liệu Boolean trong Python 24. Cấu trúc rẽ nhánh trong Python 25. Vòng lặp While trong Python 26. Vòng lặp For trong Python - Phần 1 27. Vòng lặp For trong Python - Phần 2 28. Kiểu dữ liệu Function trong Python - Sơ lược về hàm 29. Kiểu dữ liệu Function trong Python - Positional và keyword argument 30. Kiểu dữ liệu Function trong Python - Packing và unpacking arguments 31. Kiểu dữ liệu Function trong Python - Biến locals và globals 32. Kiểu dữ liệu Function trong Python - Return 33. Kiểu dữ liệu function trong Python – Yield 34. Kiểu dữ liệu function trong Python – Lambda 35. Kiểu dữ liệu Function trong Python - Functional tools 36. Kiểu dữ liệu Function trong Python - Đệ quy (recursion) 37. Giới thiệu module trong Python 38. Package trong python

Kiểu dữ liệu Function trong Python - Return

Dẫn nhập

Trong bài trước, Kteam đã giới thiệu đến bạn KIỂU DỮ LIỆU FUNCTION TRONG PYTHON – BIẾN LOCALS & GLOBALS.

Và ở bài này Kteam sẽ lại tìm hiểu với các bạn KIỂU DỮ LIỆU FUNCTION TRONG PYTHON – Return.


Nội dung

Để đọc hiểu bài này tốt nhất bạn cần:

Bạn và Kteam sẽ cùng tìm hiểu những nội dung sau đây

  • Vấn đề
  • Giới thiệu lệnh return
  • Dùng return để trả về nhiều giá trị một lúc

Vấn đề

Giả sử bạn viết một hàm xử lí một công việc và bạn muốn sao lưu kết quả sau khi xử lí xong ra một biến. Nhưng bạn lại không thể làm điều đó. Vì nếu tạo ra một biến và lưu ngay trong hàm thì như ta đã biết, nó không thể sử dụng được ở mức toàn chương trình (global).

Giá mà bạn có thể ném cái dữ liệu sau khi xử lí xong ra ngoài nhỉ?

Có đấy, hầu như mọi ngôn ngữ lập trình bây giờ điều cho phép làm điều đó và đương nhiên Python không phải ngoại lệ.


Giới thiệu lệnh return

Đây là lệnh chỉ sử dụng được ở trong hàm (nếu sử dụng ở ngoài hàm sẽ có nhắc lỗi)

Lệnh return có cú pháp như sau

return [object]

Ở đây, object là một đối tượng bất kì của một lớp nào đó, có thể là số (number), chuỗi (string), list, tuple, hàm (sẽ biết rõ hơn khi tìm hiểu decorator), lớp (class) hoặc thậm chí là bỏ trống – trường hợp bỏ trống thì object return về được tính là None.

Khi return được gọi, hàm được kết thúc và kết quả được trả ra ngoài. Kết quả trả ra ngoài nên được đưa cho một biến nào đó hứng, nếu không thì coi như bạn gọi hàm không để làm gì.

Kiểu dữ liệu Function trong Python - Return

Kiểu dữ liệu Function trong Python - Return


Dùng return để trả về nhiều giá trị một lúc

Với Python, việc bạn có thể return nhiều giá trị một lúc bản chất nó không nằm ở câu lệnh Python, mà là do Python thiết kế đặc biệt để có thể unpack các object trả về. Bạn hãy xem ví dụ về khai báo sau đây

Tận dụng điều trên, ta có thể “return nhiều giá trị cùng một lúc

Kiểu dữ liệu Function trong Python - Return


Câu hỏi củng cố

  1. Như các bạn đã biết khái niệm hàm số, với hàm số y = f(x) thì đồ thị hàm số y = f(x) đi qua điểm M(x0, y0) nếu như y0 = f(x0).

Cho một list, mỗi phần tử là một tuple gồm hoành độ (x0) và tung độ (y0), kiểm tra xem đồ thị hàm số y = f(x) có đi qua điểm đó hay không. Nếu có thì đưa sang list A, trường hợp không thì đưa phần tử đó sang list B.

Sau khi kết thúc, tính tổng các tung độ (y0) của hai list A và B rồi in ra trị tuyệt đối của hiệu tổng tung độ hai list đó.

Ví dụ: với hàm y = f(x) như sau

Kiểu dữ liệu Function trong Python - Return

Và một List các điểm

Kiểu dữ liệu Function trong Python - Return

Thì kết quả in ra là 21

  1. Cho 5 biến với giá trị mỗi biến là một số tự tự nhiên, gọi m là giá trị lớn nhất trong 5 số đó. In ra màn hình 2m -1

Ví dụ: Với 5 biến như sau, kết quả in ra sẽ là 117

Kiểu dữ liệu Function trong Python - Return

Lưu ý: Không dùng các hàm tìm min max hỗ trợ bởi thư viện, chương trình có sẵn, không sử dụng bất kì container nào. Và chương trình không quá 3 câu lệnh điều kiện (if hoặc elif hoặc else)

Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất!   


Kết luận

Qua bài viết này, Bạn đã biết về lệnh return trong hàm – KIỂU DỮ LIỆU FUNCTION TRONG PYTHON – YIELD.

Ở bài tiếp theo, Kteam sẽ nói đến một câu lệnh nữa có cách sử dụng rất giống return nhưng phức tạp rất nhiều.

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Kiểu dữ liệu Function trong Python - Return dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Chúng tôi là những người có niềm yêu thích Python và muốn Python được nhiều người biết đến hơn ở Việt Nam.

Khóa học

Lập trình Python cơ bản

Lập trình Python cơ bản

Đánh giá

5.0
11 đánh giá
Đánh giá
5
11
4
3
2
1
xiloxila đã đánh giá khoảng 1 năm trước

mikewang đã đánh giá 2 năm trước

Lã Xuân Lộc đã đánh giá 3 năm trước

parkho2003 đã đánh giá 3 năm trước

viethoang đã đánh giá 3 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
xiloxila đã bình luận khoảng 1 năm trước
Câu 2:
#Khởi tạo biến
a,b,c,d,e = 32,59,8,24,15
#Khởi tạo hàm
def GTLN(*args, m = 0):
    for max_value in args:
        if max_value > m:
            m = max_value
    print("Kết quả:", 2*m - 1)
#Kết quả
GTLN(a,b,c,d,e)
xiloxila đã bình luận khoảng 1 năm trước
Câu 1:
#Gọi hàm của đồ thị
def f(x):
    return x**3 + 2*x**2 - 4*x +1
#Gán các giá trị
toa_do = [(-1, -20), (-4, -15), (-3, 4), (-2,9), (-1,7),(0,1),(1,-7),(2,-9),(4,81),(5,130)]
lisA = []
lisB = []
#Thực hiện lấy các tọa độ và cho vào hàm
for i in toa_do:
    x = i[0]
    y = i[1]
    do_thi = f(x)
    #Phân loại list A và list B đối với từng tọa độ
    if y == f(x):
        lisA.append(i)
    else:
        lisB.append(i)
print("List A: ", lisA)
print("List B: ", lisB)
#Thực hiện tính toán tổng tung của 2 list và hiệu 2 tổng
def tongtung(a,b):
    return abs(a-b)
t = 0
v = 0
for j in lisA:
    t += j[1]
for k in lisB:
    v += k[1]
hieutong = tongtung(t,v)
print(hieutong)
Naliness đã bình luận khoảng 1 năm trước
vidu = [(-5, -20), (-4, -15), (-3, 4), (-2, 9), (-1, 7), (0, 1), (1, -7), (2, -9), (4, 81), (5, 130)]
def TUNGDO(cap_xy:list):
    listA = []
    listB = []
    for val in cap_xy:
        x, y = val[0], val[1]
        func = x**3 + 2*(x**2) - 4*x + 1
        if y == func:
            listA.append(val)
        else: 
            listB.append(val)
    print(listA)
    print(listB)
    SA = sum(valA[1] for valA in listA)
    SB = sum(valB[1] for valB in listB)
    print(abs(SA-SB))
    print(abs(SB-SA))   
TUNGDO(vidu)

 

Joseph.V đã bình luận 2 năm trước

Câu 1:

lst = [(-5, -20),(-4, -15), (-3, 4), (-2, 9), (-1, 7), (0, 1), (1, -7), (2, -9), (4, 81), (5, 130)]
lstA = []
lstB = []
tongA = 0
tongB = 0

def f(x):
    f = x**3 + 2*x**2 - 4*x + 1
    return f
for c in lst:
    if f(c[0]) == c[1]:
        lstA.append((c[0],c[1]))
        tongA += c[1]
    else:
        lstB.append((c[0],c[1]))
        tongB += c[1]

suby = abs(tongA - tongB)

print('Các điểm thuộc hàm f(x) là: ', lstA)
print('Các điểm không thuộc hàm f(x) là: ', lstB)
print('Giá trị tuyệt đối tổng tung độ là: ',suby)

Câu 2: 

a, b, c, d, e = 32, 59, 8, 24, 15
def timm(*args, m = 0): #dùng *args để tạo tuple
    for i in args:#dùng vòng lặp để tìm max
        if i > m:
            m = i
    print('Kết quả là: ', 2*m-1)
timm(a,b,c,d,e)

 

Ntq.Huy đã bình luận 2 năm trước
def b1(x,y):
    funcx = (x)*(x)*(x) + 2*(x)*(x) - 4*(x) + 1
    if y == funcx:
        lstA.append(lst_input[i])
    else:
        lstB.append(lst_input[i])
    return lstA,lstB
lstA = []
lstB = []
tup_input = ((-5,6),(-5,-20),(-4,-15),(-3,4),(-2,9),(-1,7),(0,1),(1,-7),(2,-9),(4,81),(5,130))
lst_input = list(tup_input)
print('List input is:',lst_input)
for i in range(len(lst_input)):
    lstA,lstB = b1(lst_input[i][0],lst_input[i][1])
    i+=1
    if i == len(lst_input)-1:
        print('list_A is:', lstA)
        print('list_B is:', lstB)
        sum_listA_y = int(0)
        sum_listB_y = int(0)
        for Ai in range(len(lstA)):
            sum_listA_y = sum_listA_y + lstA[Ai][1]
            if Ai == len(lstA)-1:
                F_sum_listA_y = sum_listA_y
        for Bi in range(len(lstB)):
            sum_listB_y = sum_listB_y + lstB[Bi][1]
            if Bi == len(lstB)-1:
                F_sum_listB_y = sum_listB_y
        F_sum_y = F_sum_listA_y + F_sum_listB_y
        print('Sum of Y @ listA and listB is:', F_sum_y)
        abs_F_sub_y = abs(F_sum_listA_y - F_sum_listB_y)
        print('Abs sum of Y @ listA and list B is:', abs_F_sub_y)

 

Không có video.