01/10/2018, 09:49

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ả.

Lương Quang Mạnh viết 12:05 ngày 01/10/2018

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).
Conan Nhoc viết 11:50 ngày 01/10/2018

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

ý 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ị á

Henry viết 11:59 ngày 01/10/2018

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à

Bài liên quan
0