Hỏi về sự khác nhau giữa return và print trong python

Mình viết 1 function trả về kiểu type object trong 1 list :slight_smile
Đầu tiên minh dùng print chứ không dùng return kết quả trả về đúng theo thứ tự:

def func(x):
    for i in x:
       print(i,type(i)) 

print(func([1,"a",[1,2]]))
1 class 'int'
a class 'str'
[1, 2] class 'list'

Nhưng mình thay chữ print bằng return như sau:

def func(x):
    for i in x:
       return i,type(i)

chạy đoạn vd vữa nãy chỉ ra dc 1 vòng for đầu tiên:

func([1,"a",[1,2]])
(1, int)

Các bạn cho mình hỏi tại sao dùng return chỉ cho ra dc 1 kết quả.

returnprint chả liên quan gì đến nhau thì có khi bạn hỏi sự giống nhau còn dễ nói hơn.

  • print dùng để in ra màn hình console.
  • return A dùng để trả về A và kết thúc hàm -> một khi chương trình chạy đến dòng return, hàm sẽ dừng ngay lập tức (cũng giống hầu hết các ngôn ngữ lập trình khác).
1 Like

ý mình hỏi là tại sao khi dùng return như code dưới
def func(x):
for i in x:
return i,type(i)
thì nó chỉ return có 1 giá trị á

1 giá trị đâu, nó gói trong tuple thôi
giống như a, b = 1, 2 thì cũng có thể a, b = (1, 2). nó vẫn return 2 giá trị mà

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?