Hướng dẫn can a python function return only a single value? - một hàm python có thể chỉ trả về một giá trị không?
Tôi muốn trả lại từ hàm một mảng các từ được tạo từ nltk. Tại sao chức năng này chỉ trả về một từ và nếu tôi nhận xét việc trả về và giải nén, in sẽ trả về 5 từ. Show
Tôi muốn trả lại chúng và sử dụng chúng trong một chức năng khác.
Đầu ra bây giờ là như thế này:
hoặc Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Sử dụng câu lệnh Python Return một cách hiệu quả This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Using the Python return Statement Effectively Câu lệnh Python 1 là một thành phần chính của các hàm và phương thức. Bạn có thể sử dụng câu lệnh 1 để làm cho các chức năng của bạn gửi các đối tượng Python trở lại mã người gọi. Các đối tượng này được gọi là giá trị trả về hàm. Bạn có thể sử dụng chúng để thực hiện tính toán thêm trong các chương trình của bạn.return value. You can use them to perform further computation in your programs.Sử dụng câu lệnh 1 một cách hiệu quả là một kỹ năng cốt lõi nếu bạn muốn mã hóa các chức năng tùy chỉnh có 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 chức năng dễ đọc hơn, có thể duy trì và súc tích hơn trong Python. Nếu bạn hoàn toàn mới đối với các chức năng Python, thì bạn có thể kiểm tra xác định chức năng Python của riêng bạn trước khi đi sâu vào hướng dẫn này. Bắt đầu với các chức năng 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 sử dụng lại nhanh chóng vì bạn có thể sử dụng tên của chúng để gọi chúng từ các địa điểm khác nhau trong mã của bạn. Các lập trình viên gọi các chương trình con, quy trình, quy trình hoặc chức năng được đặt tên này có tên này tùy thuộc vào ngôn ngữ họ sử dụng. Trong một số ngôn ngữ, có một sự khác biệt rõ ràng giữa một thói quen hoặc quy trình và một hàm.subroutines, routines, procedures, or functions depending on the language they use. In some languages, there’s a clear difference between a routine or procedure and a function. Đôi khi sự khác biệt đó mạnh đến mức bạn cần sử dụng một từ khóa cụ thể để xác định quy trình hoặc chương trình con và từ khóa khác để xác định hàm. Ví dụ, ngôn ngữ lập trình cơ bản trực quan sử dụng 6 và 7 để phân biệt giữa hai.Nó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 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 một giá trị hoặc kết quả cuối cùng, sau đó được gửi lại cho mã người gọi. Cả quy trình và chức năng 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ố.procedure is a named code block that performs a set of actions without computing a final value or result. On the other hand, a function is a named code block that performs some actions with the purpose of computing a final value or result, which is then sent back to the caller code. Both procedures and functions can act upon a set of input values, commonly known as arguments. Trong Python, các loại khối mã được đặt tên này được gọi là chức năng vì chúng luôn gửi lại giá trị cho người gọi. Tài liệu Python xác định một chức năng 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 người gọi, nhưng bạn sẽ sớm thấy rằng các chức năng có thể trả về bất kỳ đối tượng Python nào cho mã người gọi. Nói chung, một hàm có các đối số (nếu có), thực hiện một số hoạt động và trả về một giá trị (hoặc đối tượng). Giá trị mà một hàm trả về người gọi thường được gọi là giá trị trả về hàm. Tất cả các hàm Python có giá trị trả về, rõ ràng hoặc ẩn. Bạn sẽ bao gồm sự khác biệt giữa các giá trị trả về rõ ràng và ẩn sau này trong hướng dẫn này.takes arguments (if any), performs some operations, and returns a value (or object). The value that a function returns to the caller is generally known as the function’s return value. All Python functions have a return value, either explicit or implicit. You’ll cover the difference between explicit and implicit return values later in this tutorial. Để viết hàm Python, bạn cần một tiêu đề bắt đầu bằng từ khóa 8, theo sau là tên của hàm, một danh sách tùy chọn 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 và dấu hai chấm cuối cùng.header that starts
with the 8 keyword, followed by the name of the function, an optional list of comma-separated arguments inside a required pair of parentheses, and a final colon.Thành phần thứ hai của một hàm là khối mã hoặc cơ thể của nó. Python xác định các khối mã bằng cách sử dụng thụt lề thay vì dấu ngoặc, 9 và 0 từ khóa, 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:code block, or body. Python defines code blocks using
indentation instead of brackets, 9 and 0 keywords, and so on. So, to define a function in Python you can use the following syntax:
Khi bạn mã hóa chức năng Python, bạn cần xác định tiêu đề với từ khóa 8, 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 được yêu cầu về mặt cú pháp. Sau đó, bạn cần xác định khối mã chức năng, sẽ bắt đầu một cấp độ thụt bên phải.Trong ví dụ trên, bạn sử dụng câu lệnh 2. Loại tuyên bố này rất hữu ích khi bạn cần một câu lệnh trình giữ chỗ trong mã của mình để làm cho nó chính xác về mặt cú pháp, nhưng bạn không cần phải thực hiện bất kỳ hành động nào. Các tuyên bố 2 còn được gọi là hoạt động null vì họ không thực hiện bất kỳ hành động nào.null operation because
they don’t perform any action.Để sử dụng một chức năng, bạn cần gọi nó. Một cuộc gọi chức năng bao gồm tên hàm tên theo sau là các đối số chức năng trong ngoặc đơn:
Bạn chỉ cần chuyển các đối số cho một cuộc gọi chức năng chỉ khi 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 một cuộc gọi chức năng. Nếu bạn quên chúng, thì bạn đã thắng được gọi chức năng nhưng tham khảo nó như một đối tượng chức năng. Để làm cho các chức năng của bạn trả về một giá trị, bạn cần sử dụng câu lệnh Python 1. Đó là những gì bạn có thể bao gồm từ thời điểm này.Hiểu tuyên bố Python >>> def return_42(): ... return 42 # An explicit return statement ... >>> return_42() # The caller code gets 42 42 1Câu lệnh Python 1 là một tuyên bố đặc biệt mà bạn có thể sử dụng bên trong một hàm hoặc phương thức để gửi kết quả của chức năng trở lại cho người gọi. Một câu lệnh 1 bao gồm từ khóa 1 theo sau là giá trị trả về tùy chọn.Python
1 statement is a special statement that you can use inside a function or method to send the function’s result back to the caller. A 1 statement consists of the 1 keyword followed by an optional return value.Giá trị trả về của hàm Python có thể là bất kỳ đối tượng Python nào. Tất cả mọi thứ trong Python là một đối tượng. Vì vậy, các chức năng của bạn có thể trả về các giá trị số ( 9, 0 và 1), các bộ sưu tập và trình tự của các đối tượng ( 2, 3, 4 hoặc 5 đối tượng)Bạn có thể bỏ qua giá trị trả về của một hàm và sử dụng giá trị trả lại trần mà không có giá trị trả về. Bạn cũng có thể bỏ qua toàn bộ tuyên bố 1. Trong cả hai trường hợp, giá trị trả lại sẽ là 8.Trong hai phần tiếp theo, bạn sẽ bao gồm những điều cơ bản về cách thức câu lệnh 1 hoạt động và cách bạn có thể sử dụng nó để trả lại kết quả của chức năng trở lại mã người gọi.Báo cáo rõ ràng >>> def return_42(): ... return 42 # An explicit return statement ... >>> return_42() # The caller code gets 42 42 1Một câu lệnh 1 rõ ràng ngay lập tức chấm dứt thực thi chức năng và gửi giá trị trả về lại mã người gọi. Để thêm câu lệnh 1 rõ ràng vào hàm Python, bạn cần sử dụng 1 theo sau là giá trị trả về tùy chọn:explicit 1 statement immediately terminates a function execution and sends the return value back to the caller code. To add an explicit 1 statement to a Python function, you need to use 1 followed by an optional return value:>>>
Khi bạn xác định 4, bạn sẽ thêm câu lệnh 1 rõ ràng ( 6) ở cuối khối mã chức năng. 7 là giá trị trả về rõ ràng của 4. Điều này có nghĩa là bất cứ khi nào bạn gọi 4, chức năng sẽ gửi lại 7 cho người gọi.Nếu bạn xác định một hàm với câu lệnh 1 rõ ràng có giá trị trả về rõ ràng, thì bạn có thể sử dụng giá trị trả về đó trong bất kỳ biểu thức nào:>>>
Khi bạn xác định 4, bạn sẽ thêm câu lệnh 1 rõ ràng ( 6) ở cuối khối mã chức năng. 7 là giá trị trả về rõ ràng của 4. Điều này có nghĩa là bất cứ khi nào bạn gọi 4, chức năng sẽ gửi lại 7 cho người gọi.
>>>
Khi bạn xác định 4, bạn sẽ thêm câu lệnh 1 rõ ràng ( 6) ở cuối khối mã chức năng. 7 là giá trị trả về rõ ràng của 4. Điều này có nghĩa là bất cứ khi nào bạn gọi 4, chức năng sẽ gửi lại 7 cho người gọi.Nếu bạn xác định một hàm với câu lệnh 1 rõ ràng có giá trị trả về rõ ràng, thì bạn có thể sử dụng giá trị trả về đó trong bất kỳ biểu thức nào:>>>
Khi bạn xác định 4, bạn sẽ thêm câu lệnh 1 rõ ràng ( 6) ở cuối khối mã chức năng. 7 là giá trị trả về rõ ràng của 4. Điều này có nghĩa là bất cứ khi nào bạn gọi 4, chức năng sẽ gửi lại 7 cho người gọi.>>>
Khi bạn xác định 4, bạn sẽ thêm câu lệnh 1 rõ ràng ( 6) ở cuối khối mã chức năng. 7 là giá trị trả về rõ ràng của 4. Điều này có nghĩa là bất cứ khi nào bạn gọi 4, chức năng sẽ gửi lại 7 cho người gọi.>>> 0
Khi bạn xác định >>> def get_even(numbers): ... even_nums = [num for num in numbers if not num % 2] ... return even_nums ... >>> get_even([1, 2, 3, 4, 5, 6]) [2, 4, 6] 4, bạn sẽ thêm câu lệnh >>> def return_42(): ... return 42 # An explicit return statement ... >>> return_42() # The caller code gets 42 42 1 rõ ràng (>>> def get_even(numbers): ... even_nums = [num for num in numbers if not num % 2] ... return even_nums ... >>> get_even([1, 2, 3, 4, 5, 6]) [2, 4, 6] 6) ở cuối khối mã chức năng. >>> def get_even(numbers): ... even_nums = [num for num in numbers if not num % 2] ... return even_nums ... >>> get_even([1, 2, 3, 4, 5, 6]) [2, 4, 6] 7 là giá trị trả về rõ ràng của >>> def get_even(numbers): ... even_nums = [num for num in numbers if not num % 2] ... return even_nums ... >>> get_even([1, 2, 3, 4, 5, 6]) [2, 4, 6] 4. Điều này có nghĩa là bất cứ khi nào bạn gọi >>> def get_even(numbers): ... even_nums = [num for num in numbers if not num % 2] ... return even_nums ... >>> get_even([1, 2, 3, 4, 5, 6]) [2, 4, 6] 4, chức năng sẽ gửi lại >>> def get_even(numbers): ... even_nums = [num for num in numbers if not num % 2] ... return even_nums ... >>> get_even([1, 2, 3, 4, 5, 6]) [2, 4, 6] 7 cho người gọi.Nếu bạn xác định một hàm với câu lệnh 1 rõ ràng có giá trị trả về rõ ràng, thì bạn có thể sử dụng giá trị trả về đó trong bất kỳ biểu thức nào:Vì 4 trả về giá trị số, bạn có thể sử dụng giá trị đó trong biểu thức toán học hoặc bất kỳ loại biểu thức nào khác trong đó giá trị có ý nghĩa hợp lý hoặc kết hợp. Đây là cách mã người gọi có thể tận dụng giá trị trả về hàm của hàm.implicit 1 statement that uses 8 as a return value:>>> 1Nếu bạn không cung cấp một câu lệnh 1 rõ ràng với giá trị trả về rõ ràng, thì Python sẽ cung cấp một câu lệnh 1 ngầm bằng cách sử dụng 8 làm giá trị trả về. Trong ví dụ trên, 19 thêm 11 vào 12 và lưu trữ giá trị trong 22 nhưng nó không trả lại 22. Đó là lý do tại sao bạn nhận được 24 thay vì 25. Để khắc phục sự cố, bạn cần phải 26 hoặc trực tiếp 27.Một ví dụ về một hàm trả về 8 là 29. Mục tiêu của hàm này là in các đối tượng vào tệp luồng văn bản, thường là đầu ra tiêu chuẩn (màn hình của bạn). Vì vậy, chức năng này không cần một câu lệnh 1 rõ ràng vì nó không trả lời bất cứ điều gì hữu ích hoặc có ý nghĩa:>>> 2Cuộc gọi đến 29 in 32 lên màn hình. Vì đây là mục đích của 29, chức năng không cần phải trả về bất cứ điều gì hữu ích, vì vậy bạn nhận được 8 như một giá trị trả về.Bất kể các chức năng của bạn là bao lâu và phức tạp, bất kỳ chức năng nào không có câu lệnh 1 rõ ràng hoặc một chức năng có câu lệnh 1 mà không có giá trị trả về, sẽ trả về 8.Trả lại vs inNếu bạn làm việc trong một phiên tương tác, thì bạn có thể nghĩ rằng in một giá trị và trả về một giá trị là các hoạt động tương đương. Xem xét hai chức năng sau và đầu ra của chúng: >>> 3Cả hai chức năng dường như làm điều tương tự. Trong cả hai trường hợp, bạn thấy 32 được in trên màn hình của bạn. Ở đó, chỉ có một sự khác biệt có thể nhìn thấy tinh tế, các dấu ngoặc kép duy nhất trong ví dụ thứ hai. Nhưng hãy xem những gì xảy ra nếu bạn trả về một kiểu dữ liệu khác, hãy nói một đối tượng 9:>>> 4Bây giờ không có sự khác biệt có thể nhìn thấy. Trong cả hai trường hợp, bạn có thể thấy 7 trên màn hình của mình. Hành vi đó có thể gây nhầm lẫn nếu bạn chỉ bắt đầu với Python. Bạn có thể nghĩ rằng trả lại và in một giá trị là những hành động tương đương.Bây giờ, giả sử bạn đang tiến sâu hơn vào Python và bạn bắt đầu viết kịch bản đầu tiên của mình. Bạn mở một trình soạn thảo văn bản và nhập mã sau: 5 41 lấy hai số, thêm chúng và trả về kết quả. Trên dòng 5, bạn gọi 41 để tổng 43 cộng với 43. Vì bạn vẫn đang học sự khác biệt giữa trả lại và in một giá trị, bạn có thể mong đợi kịch bản của mình in 45 lên màn hình. Tuy nhiên, đó không phải là những gì xảy ra, và bạn không nhận được gì trên màn hình của mình.line 5, you call 41 to sum 43 plus 43. Since you’re still learning the difference between returning and printing a value, you might expect your script to print 45 to the screen. However,
that’s not what happens, and you get nothing on your screen.Hãy thử nó một mình. Lưu tập lệnh của bạn vào một tệp có tên 46 và chạy nó từ dòng lệnh của bạn như sau:Nếu bạn chạy 46 từ dòng lệnh của mình, thì bạn đã giành được bất kỳ kết quả nào trên màn hình của bạn. Điều đó bởi vì khi bạn chạy một tập lệnh, các giá trị trả về của các hàm mà bạn gọi trong tập lệnh don lồng được in lên màn hình như chúng làm trong một phiên tương tác.Nếu bạn muốn tập lệnh của bạn hiển thị kết quả của việc gọi 41 trên màn hình của bạn, thì bạn cần gọi rõ ràng 29. Kiểm tra bản cập nhật sau của 46: 6Bây giờ, khi bạn chạy 46, bạn sẽ thấy số 45 trên màn hình của bạn.Vì vậy, nếu bạn làm việc trong một phiên tương tác, thì Python sẽ hiển thị kết quả của bất kỳ cuộc gọi chức năng nào trực tiếp đến màn hình của bạn. Nhưng nếu bạn đang viết một tập lệnh và bạn muốn xem một hàm giá trị trả về hàm, thì bạn cần sử dụng rõ ràng 29.Trả về nhiều giá trịBạn có thể sử dụng câu lệnh 1 để trả về nhiều giá trị từ một hàm. Để làm điều đó, bạn chỉ cần cung cấp một số giá trị trả về được phân tách bằng dấu phẩy.Ví dụ: giả sử bạn cần viết một hàm lấy một mẫu dữ liệu số và trả về một bản tóm tắt các biện pháp thống kê. Để mã hóa chức năng đó, bạn có thể sử dụng mô -đun tiêu chuẩn Python 55, cung cấp một số chức năng để tính toán số liệu thống kê toán học của dữ liệu số.Ở đây, một triển khai có thể thực hiện chức năng của bạn: 7Trong 56, bạn tận dụng khả năng của Python, để trả về nhiều giá trị trong một câu lệnh 1 bằng cách trả về trung bình, trung bình và chế độ của mẫu cùng một lúc. Lưu ý rằng, để trả về nhiều giá trị, bạn chỉ cần viết chúng trong một danh sách được phân tách bằng dấu phẩy theo thứ tự bạn muốn chúng được trả về.Khi bạn đã mã hóa 56, bạn có thể tận dụng một tính năng Python mạnh mẽ được gọi là không thể giải nén để giải nén ba biện pháp thành ba biến tách biệt hoặc bạn chỉ có thể lưu trữ mọi thứ trong một biến:>>> 8Ở đây, bạn giải nén ba giá trị trả về của 56 vào các biến 60, 61 và 62. Lưu ý rằng trong ví dụ cuối cùng, bạn lưu trữ tất cả các giá trị trong một biến duy nhất, 63, hóa ra là Python 3.Hàm tích hợp 65 cũng là một ví dụ về hàm trả về nhiều giá trị. Hàm lấy hai số (không phức tạp) làm đối số và trả về hai số, thương số của hai giá trị đầu vào và phần còn lại của bộ phận:>>> 9Cuộc gọi đến 65 trả về một tuple chứa thương số và phần còn lại là kết quả từ việc chia hai số không phức tạp được cung cấp dưới dạng đối số. Đây là một ví dụ về một hàm có nhiều giá trị trả về.Sử dụng tuyên bố Python >>> def return_42(): ... return 42 # An explicit return statement ... >>> return_42() # The caller code gets 42 42 1: Thực tiễn tốt nhấtCho đến nay, bạn đã đề cập đến những điều cơ bản về cách thức tuyên bố của Python 1. Bây giờ bạn biết cách viết các chức năng trả về một hoặc nhiều giá trị cho người gọi. Ngoài ra, bạn đã học được rằng nếu bạn không thêm một câu lệnh 1 rõ ràng với giá trị trả về rõ ràng cho một hàm nhất định, thì Python sẽ thêm nó cho bạn. Giá trị đó sẽ là 8.Trong phần này, bạn sẽ bao gồm một số ví dụ sẽ hướng dẫn bạn thông qua một tập hợp các thực tiễn lập trình tốt để sử dụng hiệu quả câu lệnh 1. Những thực tiễn này sẽ giúp bạn viết các chức năng dễ đọc hơn, có thể duy trì, mạnh mẽ và hiệu quả hơn trong Python.Trả lại >>> return 42
File " |