30/09/2018, 20:35

Em có chút thắc mắc về hàm def trong python mong các pro giải đáp giúp

Cho chương trình sau;

def duchoang(a):
        print a
	return a
duchoang("Nguyen Duc Hoang")

Kết quả in ra chuỗi: Nguyen Duc Hoang
-------------------------------------------------

def duchoang(a):
        return a
	print a
duchoang("Nguyen Duc Hoang")

Kết quả in ra chuỗi: Rỗng (ko có gì)
-------------------------------------------------
E thắc mắc: Phải chăng câu lệnh return phải luôn đặt cuối cùng trong hàm (nguyên tắc phải vậy). Tại sao ở lần thử thứ 2 câu lệnh print đặt sau return lại không in ra kết quả. Chương trình hoạt động như thế nào trong cả 2 trường hợp. Mong các pro giải thích giúp mình, cảm ơn!

Chế Vũ Gia Hy viết 22:37 ngày 30/09/2018

Đầu tiên để mình làm rõ cho bạn vài khái niêm:
def(ine) ở đây không phải là hàm (function), mà nó là keyword giống như print, return, … như trên. Mình muốn nói rõ, vì ở đây bạn đang xài python 2x nên print là keyword nhưng lên 3x nó là function

def, như tên gọi, sẽ giúp bạn tạo một hàm duchoang.

Trong hàm không nhất thiết phải có return (tùy vào mục đích hàm đó là gì). return có chức năng kết thúc hàm ngay lập tức và trả gía trị về caller. Như ví dụ trên của bạn thì caller duchoang("Nguyen Duc Hoang") sẽ mang gía trị Nguyễn Đức Hoàng.

Chương trình 1 của bạn in ra vì có print
Chương trinh 2 của bạn không in ra vì return đã ngắt hàm trước khi chạm print

Bạn thử print(duchoang("Nguyen Duc Hoang")) của 2 chương trình, xem kết qủa mình nghĩ nó sẽ giúp bạn hiểu hơn về return

P/S1: return không phải lúc nào cũng đặt cuối cùng trong hàm.
P/S2: Mình nghĩ bạn nên đọc manual, sách của python nhiều hơn, để kết hợp với việc học. Bởi vì những hướng dẫn trên lớp hay mạng đều tóm gọn không chi tiết để bạn hiểu sâu và đủ.

Nguyễn Đức Hoàng viết 22:37 ngày 30/09/2018

Cám ơn bạn. Bạn giải thích rất dễ hiểu.

Nguyễn Đức Hoàng viết 22:44 ngày 30/09/2018

Mình đang đọc một số code của python mà đau hết đầu bạn ah. Hàm lồng trong hàm, Mình phải thử từng hàm một xem nó có chức năng gì và giá trị thế nào. Rồi bắt đầu mới ghép lại để có thể hình dung về cách làm việc của toàn bộ chương trình. Đọc code như vậy có đúng ko bạn. Và sau một thời gian tìm hiểu sâu về python thì đọc code người khác viết có dễ hình dung hơn không bạn.

Vô Thin viết 22:42 ngày 30/09/2018

Cách tiếp cận của bạn là học chạy trước khi học đi. Bạn nên đọc tài liệu về lập trình Python để hiểu các khái niệm cơ bản của nó và thông qua những ví dụ nhỏ nhỏ kiểu bài tập cái đã. Còn không, cách bạn đang làm là bỗng nhiên lôi code Python ra đọc thì bạn đang làm việc “thầy bói xem voi”.

giang viết 22:35 ngày 30/09/2018

Cám ơn câu trả lời của bạn. Mình học được thêm 1 kiến thức mới

Bài liên quan
0