Tại sao lại sử dụng return thay vì print Python?
Nhiều lập trình viên mới bắt đầu thấy sự khác biệt giữa in và trả về rất khó hiểu, đặc biệt là vì hầu hết các minh họa về giá trị trả về trong văn bản giới thiệu như thế này đều hiển thị giá trị trả về từ lệnh gọi hàm bằng cách in ra, như trong Show
Câu lệnh in khá dễ hiểu. Nó lấy một đối tượng python và xuất ra một bản in của nó trong cửa sổ đầu ra. Bạn có thể coi câu lệnh in như một thứ lấy một đối tượng từ vùng đất của chương trình và làm cho nó hiển thị với vùng đất của người quan sát. Ghi chú In là dành cho người. Hãy nhớ khẩu hiệu đó. Việc in không ảnh hưởng đến việc thực hiện chương trình đang diễn ra. Nó không gán giá trị cho một biến. Nó không trả về giá trị từ lệnh gọi hàm Nếu bạn bối rối, rất có thể nguồn gốc của sự nhầm lẫn của bạn thực sự là về các giá trị được trả về và việc đánh giá các biểu thức phức tạp. Một hàm trả về một giá trị đang tạo ra một giá trị để chương trình sử dụng, đặc biệt là để sử dụng trong phần mã nơi hàm được gọi. Hãy nhớ rằng khi một hàm được gọi, khối mã của hàm đó sẽ được thực thi – tất cả mã được thụt vào bên dưới câu lệnh Bạn đã thấy một số lời gọi hàm trong Chương 1. Khi chúng tôi nói với bạn về hàm Đó là bởi vì hàm Nếu một giá trị được trả về là để chương trình sử dụng, tại sao bạn lại gọi hàm đó để trả về một giá trị?
Nếu mục đích duy nhất của bạn khi chạy một chức năng là làm cho đầu ra hiển thị cho người tiêu dùng, thì có hai cách để thực hiện. Bạn có thể đặt một hoặc nhiều câu lệnh in bên trong định nghĩa hàm và không cần trả lại bất kỳ thứ gì từ hàm (giá trị Không có sẽ được trả về). Trong trường hợp đó, hãy gọi hàm mà không có câu lệnh in. Ví dụ: bạn có thể có toàn bộ dòng mã có nội dung def square(x): return x*x def g(y): return y + 3 def h(y): return square(y) + 3 print(g(h(2))4. Điều đó sẽ chạy hàm f và loại bỏ giá trị trả về. Tất nhiên, nếu hình vuông không in ra bất cứ thứ gì hoặc có bất kỳ tác dụng phụ nào, thì việc gọi nó là vô ích và không làm gì với giá trị trả về. Nhưng với một hàm có các câu lệnh in bên trong nó, nó có thể khá hữu ích Khả năng khác là trả về một giá trị từ hàm và in nó, như trong def square(x): return x*x def g(y): return y + 3 def h(y): return square(y) + 3 print(g(h(2))5. Khi bạn bắt đầu viết các chương trình lớn hơn, phức tạp hơn, điều này sẽ trở nên điển hình hơn. Thật vậy, câu lệnh in thường sẽ chỉ là biện pháp tạm thời trong khi bạn đang phát triển chương trình. Cuối cùng, bạn sẽ gọi f và lưu giá trị trả về hoặc sử dụng nó như một phần của biểu thức phức tạp hơn Bạn sẽ biết mình đã thực sự tiếp thu ý tưởng về các hàm khi bạn không còn bối rối về sự khác biệt giữa in và trả lại. Tiếp tục làm việc với nó cho đến khi nó có ý nghĩa với bạn Câu lệnh 9 của Python là thành phần chính của các hàm và. Bạn có thể sử dụng câu lệnh 9 để làm cho các hàm của bạn gửi các đối tượng Python trở lại mã trình gọi. Các đối tượng này được gọi là giá trị trả về của hàm. Bạn có thể sử dụng chúng để thực hiện thêm tính toán trong các chương trình của mìnhSử dụng câu lệnh 9 một cách hiệu quả là một kỹ năng cốt lõi nếu bạn muốn viết mã các hàm tùy chỉnh Pythonic và mạnh mẽTrong hướng dẫn này, bạn sẽ học
Với kiến thức này, bạn sẽ có thể viết các hàm dễ đọc, dễ bảo trì và ngắn gọn hơn trong Python. Nếu bạn hoàn toàn chưa quen với các hàm Python, thì bạn có thể xem Xác định hàm Python của riêng bạn trước khi đi sâu vào hướng dẫn này Tiền thưởng miễn phí. 5 Suy nghĩ về Làm chủ Python, một khóa học miễn phí dành cho các nhà phát triển Python cho bạn thấy lộ trình và tư duy mà bạn sẽ cần để đưa các kỹ năng Python của mình lên một tầm cao mới Bắt đầu với các hàm PythonHầu hết các ngôn ngữ lập trình cho phép bạn gán tên cho một khối mã thực hiện tính toán cụ thể. Các khối mã được đặt tên này có thể được tái sử dụng nhanh chóng vì bạn có thể sử dụng tên của chúng để gọi chúng từ các vị trí khác nhau trong mã của mình Các lập trình viên gọi các khối mã được đặt tên này là chương trình con, thói quen, thủ tục hoặc hàm tùy thuộc vào ngôn ngữ họ sử dụng. Trong một số ngôn ngữ, có sự khác biệt rõ ràng giữa một quy trình hoặc thủ tục và một chức năng Đôi khi sự khác biệt đó lớn đến mức bạn cần sử dụng một từ khóa cụ thể để xác định một thủ tục hoặc chương trình con và một từ khóa khác để xác định một hàm. Ví dụ: ngôn ngữ lập trình Visual Basic sử dụng 4 và 5 để phân biệt giữa haiNói chung, một thủ tục là một khối mã được đặt tên thực hiện một tập hợp các hành động mà không cần tính toán giá trị hoặc kết quả cuối cùng. Mặt khác, một hàm là một khối mã được đặt tên thực hiện một số hành động với mục đích tính toán giá trị hoặc kết quả cuối cùng, sau đó được gửi lại cho mã người gọi. Cả thủ tục và hàm đều có thể hành động dựa trên một tập hợp các giá trị đầu vào, thường được gọi là đối số Trong Python, các loại khối mã được đặt tên này được gọi là hàm vì chúng luôn gửi lại giá trị cho người gọi. Tài liệu Python định nghĩa một hàm như sau
Mặc dù tài liệu chính thức nói rằng một hàm “trả về một số giá trị cho trình gọi”, nhưng bạn sẽ sớm thấy rằng các hàm có thể trả về bất kỳ đối tượng Python nào cho mã trình gọi Nói chung, một hàm nhận các đối số (nếu có), thực hiện một số thao tác và trả về một giá trị (hoặc đối tượng). Giá trị mà hàm trả về cho người gọi thường được gọi là giá trị trả về của hàm. Tất cả các hàm Python đều có giá trị trả về, rõ ràng hoặc ẩn. Bạn sẽ đề cập đến sự khác biệt giữa giá trị trả về rõ ràng và tiềm ẩn sau trong hướng dẫn này Để viết một hàm Python, bạn cần có một tiêu đề bắt đầu bằng từ khóa 6, theo sau là tên của hàm, một danh sách tùy chọn gồm các đối số được phân tách bằng dấu phẩy bên trong một cặp dấu ngoặc đơn bắt buộc và dấu hai chấm cuối cùng.Thành phần thứ hai của hàm là khối mã hoặc phần thân của hàm. Python xác định các khối mã bằng cách sử dụng thay vì dấu ngoặc, từ khóa 7 và 8, v.v. Vì vậy, để xác định một hàm trong Python, bạn có thể sử dụng cú pháp sau
Khi bạn đang mã hóa một hàm Python, bạn cần xác định tiêu đề bằng từ khóa 6, tên của hàm và danh sách các đối số trong ngoặc đơn. Lưu ý rằng danh sách các đối số là tùy chọn, nhưng dấu ngoặc đơn là bắt buộc về mặt cú pháp. Sau đó, bạn cần xác định khối mã của hàm, khối này sẽ bắt đầu một cấp độ thụt vào bên phảiTrong ví dụ trên, bạn sử dụng câu lệnh 0. Loại câu lệnh này hữu ích khi bạn cần một câu lệnh giữ chỗ trong mã của mình để làm cho nó đúng về mặt cú pháp, nhưng bạn không cần thực hiện bất kỳ hành động nào. Câu lệnh 0 còn được gọi là phép toán null vì chúng không thực hiện bất kỳ hành động nàoGhi chú. Cú pháp đầy đủ để xác định các hàm và đối số của chúng nằm ngoài phạm vi của hướng dẫn này. Để có tài nguyên chuyên sâu về chủ đề này, hãy xem Xác định chức năng Python của riêng bạn Để sử dụng một chức năng, bạn cần gọi nó. Một lệnh gọi hàm bao gồm tên của hàm theo sau là các đối số của hàm trong ngoặc đơn
Bạn sẽ chỉ cần truyền đối số cho lệnh gọi hàm nếu hàm đó yêu cầu chúng. Mặt khác, dấu ngoặc đơn luôn được yêu cầu trong lệnh gọi hàm. Nếu bạn quên chúng, thì bạn sẽ không gọi hàm mà tham chiếu nó như một đối tượng hàm Để làm cho các hàm của bạn trả về một giá trị, bạn cần sử dụng. Đó là những gì bạn sẽ trình bày từ thời điểm này trở đi Loại bỏ các quảng cáoHiểu câu lệnh >>> return 42
File " |