Hướng dẫn what are fruitful and non fruitful function in python? - chức năng có quả và không có quả ở trăn là gì?
Hàm hiệu quả: Hàm trả về giá trị 6.1. Trả về các giá trịCác chức năng tích hợp mà chúng tôi đã sử dụng, chẳng hạn như ABS, POW, INT, MAX và phạm vi, đã tạo ra kết quả. Gọi từng hàm này tạo ra một giá trị, mà chúng ta thường gán cho một biến hoặc sử dụng như một phần của biểu thức.abs, pow, int, max, and range, have produced results. Calling each of these functions generates a value, which we usually assign to a variable or use as part of an expression.
Chúng tôi cũng đã viết chức năng của riêng mình để trả lại số tiền cuối cùng để tính toán lãi kép. Trong chương này, chúng ta sẽ viết nhiều chức năng trả về các giá trị, mà chúng ta sẽ gọi là các chức năng hiệu quả, vì muốn có một cái tên tốt hơn. Ví dụ đầu tiên là khu vực, trả về khu vực của một vòng tròn với bán kính đã cho:area, which returns the area of a circle with the given radius:
Chúng tôi đã thấy câu lệnh trả lại trước đây, nhưng trong một hàm hiệu quả, câu lệnh trả về bao gồm giá trị trả về. Tuyên bố này có nghĩa là: Đánh giá biểu thức trả về, và sau đó trả về nó ngay lập tức là kết quả (trái cây) của hàm này. Biểu thức được cung cấp có thể phức tạp một cách tùy ý, vì vậy chúng tôi có thể viết chức năng này như sau:return statement before, but in a fruitful function the return statement includes a return value. This statement means: evaluate the return expression, and then return it immediately as the result (the fruit) of this function. The expression provided can be arbitrarily complicated, so we could have written this function like this:
Mặt khác, các biến tạm thời như B ở trên thường làm cho việc gỡ lỗi dễ dàng hơn.temporary variables like b above often make debugging easier. Đôi khi rất hữu ích khi có nhiều câu lệnh trả lại, một trong mỗi nhánh của một điều kiện. Chúng ta đã thấy cơ bụng tích hợp, bây giờ chúng ta thấy cách viết của riêng mình:abs, now we see how to write our own:
Một cách khác để viết hàm trên là bỏ qua và chỉ theo điều kiện IF theo câu lệnh trả về thứ hai.else and just follow the if condition by the second return statement.
Hãy suy nghĩ về phiên bản này và thuyết phục bản thân nó hoạt động giống như phiên bản đầu tiên. Mã xuất hiện sau một tuyên bố trả lại, hoặc bất kỳ nơi nào khác, luồng thực thi không bao giờ có thể đạt được, được gọi là mã chết hoặc mã không thể truy cập được.return statement, or any other place the flow of execution can never reach, is called dead code, or unreachable code. Trong một chức năng hiệu quả, bạn nên đảm bảo rằng mọi con đường có thể thông qua chương trình đều đạt được tuyên bố trả lại. Phiên bản sau của usolute_value không thực hiện được điều này:return statement. The following version of absolute_value fails to do this:
Phiên bản này không chính xác vì nếu X xảy ra là 0, thì không điều kiện là đúng và hàm kết thúc mà không nhấn câu lệnh trả về. Trong trường hợp này, giá trị trả về là một giá trị đặc biệt được gọi là không:x happens to be 0, neither condition is true, and the function ends without hitting a return statement. In this case, the return value is a special value called None: >>> print(bad_absolute_value(0)) None Tất cả các hàm Python không trả lại bất cứ khi nào chúng không trả về giá trị khác.None whenever they do not return another value. Cũng có thể sử dụng một câu lệnh trả về ở giữa một vòng lặp, trong đó điều khiển trường hợp ngay lập tức trở lại từ hàm. Chúng ta hãy giả sử rằng chúng ta muốn một hàm xem qua danh sách các từ. Nó sẽ trả lại từ 2 chữ cái đầu tiên. Nếu không có một, nó sẽ trả lại chuỗi trống:for loop, in which case control immediately returns from the function. Let us assume that we want a function which looks through a list of words. It should return the first 2-letter word. If there is not one, it should return the empty string:
Một bước thông qua mã này và thuyết phục bản thân rằng trong trường hợp thử nghiệm đầu tiên mà chúng tôi đã cung cấp, chức năng trả về trong khi xử lý phần tử thứ hai trong danh sách: nó không phải đi qua toàn bộ danh sách. 6.2. Phát triển chương trình¶Tại thời điểm này, bạn sẽ có thể xem xét các chức năng hoàn chỉnh và cho biết những gì họ làm. Ngoài ra, nếu bạn đã thực hiện các bài tập, bạn đã viết một số chức năng nhỏ. Khi bạn viết các chức năng lớn hơn, bạn có thể bắt đầu gặp nhiều khó khăn hơn, đặc biệt là với thời gian chạy và các lỗi ngữ nghĩa. Để đối phó với các chương trình ngày càng phức tạp, chúng tôi sẽ đề xuất một kỹ thuật gọi là phát triển gia tăng. Mục tiêu của sự phát triển gia tăng là tránh các phiên gỡ lỗi dài bằng cách thêm và chỉ kiểm tra một lượng nhỏ mã tại một thời điểm.incremental development. The goal of incremental development is to avoid long debugging sessions by adding and testing only a small amount of code at a time. Ví dụ, giả sử chúng ta muốn tìm khoảng cách giữa hai điểm, được đưa ra bởi tọa độ (x1, y1) và (x2, y2). Theo định lý Pythagore, khoảng cách là: Bước đầu tiên là xem xét chức năng khoảng cách sẽ trông như thế nào trong Python. Nói cách khác, các đầu vào (tham số) là gì và đầu ra (giá trị trả về) là gì?distance function should look like in Python. In other words, what are the inputs (parameters) and what is the output (return value)? Trong trường hợp này, hai điểm là các đầu vào, chúng ta có thể biểu diễn bằng bốn tham số. Giá trị trả về là khoảng cách, là giá trị điểm nổi. Chúng ta đã có thể viết một phác thảo về chức năng nắm bắt suy nghĩ của chúng ta cho đến nay:
Rõ ràng, phiên bản này của hàm này không tính toán khoảng cách; Nó luôn luôn trả về 0. Nhưng nó là chính xác về mặt cú pháp, và nó sẽ chạy, điều đó có nghĩa là chúng ta có thể kiểm tra nó trước khi chúng ta làm cho nó phức tạp hơn. Để kiểm tra chức năng mới, chúng tôi gọi nó với các giá trị mẫu: def power(x,y=3): for i in range(y): r=r*x return r a=intinput((“Enter Base”)) b=intinput((“Enter Exponent”)) total = power(a,b) print(total)2 Chúng tôi đã chọn các giá trị này để khoảng cách ngang bằng 3 và khoảng cách dọc bằng 4; Bằng cách đó, kết quả là 5 (hypotenuse của tam giác 3-4-5). Khi kiểm tra một hàm, rất hữu ích khi biết câu trả lời đúng. Tại thời điểm này, chúng tôi đã xác nhận rằng hàm là chính xác về mặt cú pháp và chúng tôi có thể bắt đầu thêm các dòng mã. Sau mỗi lần thay đổi gia tăng, chúng tôi kiểm tra lại chức năng. Nếu một lỗi xảy ra tại bất kỳ điểm nào, chúng tôi biết nó phải ở đâu - trong dòng cuối cùng chúng tôi đã thêm. Bước đầu tiên hợp lý trong tính toán là tìm sự khác biệt x2- x1 và y2- y1. Chúng tôi sẽ đề cập đến các giá trị đó bằng các biến tạm thời có tên DX và DY.dx and dy.
Nếu chúng ta gọi chức năng với các đối số được hiển thị ở trên, khi luồng thực thi đến câu lệnh trả về, DX nên là 3 và DY nên là 4. Chúng ta có thể kiểm tra xem đây có phải là trường hợp trong pyscripter bằng cách đặt con trỏ vào câu lệnh trả về câu trả lời và chạy chương trình để phá vỡ thực thi khi đến con trỏ (sử dụng phím F4). Sau đó, chúng tôi kiểm tra các biến DX và DY bằng cách di chuột lên trên chúng, để xác nhận rằng hàm đang nhận đúng các tham số và thực hiện tính toán đầu tiên một cách chính xác. Nếu không, chỉ có một vài dòng để kiểm tra.dx should be 3 and dy should be 4. We can check that this is the case in PyScripter by putting the cursor on the return statement, and running the program to break execution when it gets to the cursor (using the F4 key). Then we inspect the variables dx and dy by hovering the mouse above them, to confirm that the function is getting the right parameters and performing the first computation correctly. If not, there are only a few lines to check. Tiếp theo, chúng tôi tính tổng các bình phương của DX và DY:dx and dy:
Một lần nữa, chúng tôi có thể chạy chương trình ở giai đoạn này và kiểm tra giá trị của DSquared (phải là 25).dsquared (which should be 25). Cuối cùng, sử dụng số mũ phân đoạn 0,5 để tìm căn bậc hai, chúng tôi tính toán và trả về kết quả:0.5 to find the square root, we compute and return the result:
Nếu điều đó hoạt động chính xác, bạn đã hoàn thành. Nếu không, bạn có thể muốn kiểm tra giá trị của kết quả trước câu lệnh trả về.result before the return statement. Khi bạn bắt đầu, bạn chỉ có thể thêm một hoặc hai dòng mã tại một thời điểm. Khi bạn có được nhiều kinh nghiệm hơn, bạn có thể thấy mình viết và gỡ lỗi các khối khái niệm lớn hơn. Dù bằng cách nào, bước qua mã của bạn một dòng tại một thời điểm và xác minh rằng mỗi bước phù hợp với mong đợi của bạn có thể giúp bạn tiết kiệm rất nhiều thời gian gỡ lỗi. Khi bạn cải thiện các kỹ năng lập trình của mình, bạn nên thấy mình quản lý các phần lớn hơn và lớn hơn: điều này rất giống với cách chúng ta học đọc chữ cái, âm tiết, từ, cụm từ, câu, đoạn văn, v.v. - Từ ghi chú cá nhân đến hợp âm, thanh, cụm từ, v.v. Các khía cạnh chính của quy trình là:
Đây là một phiên bản khác của chức năng. Nó sử dụng hàm căn bậc hai trong mô -đun toán học (chúng tôi sẽ tìm hiểu về các mô -đun trong thời gian ngắn). Bạn thích cái nào hơn? Cái nào trông gần gũi hơn với công thức Pythagore mà chúng tôi bắt đầu?math module (we’ll learn about modules shortly). Which do you prefer? Which looks “closer” to the Pythagorean formula we started out with?
6.3. Gỡ lỗi với Print¶print¶Một kỹ thuật mạnh mẽ khác để gỡ lỗi (một giải pháp thay thế cho việc một bước và kiểm tra các biến chương trình), là chèn thêm các chức năng in ở những nơi được lựa chọn cẩn thận trong mã của bạn. Sau đó, bằng cách kiểm tra đầu ra của chương trình, bạn có thể kiểm tra xem thuật toán có đang làm những gì bạn mong đợi hay không. Tuy nhiên, hãy rõ ràng về những điều sau đây:print functions in carefully selected places in your code. Then, by inspecting the output of the program, you can check whether the algorithm is doing what you expect it to. Be clear about the following, however:
6.4. Thành phần¶Như bạn nên mong đợi bây giờ, bạn có thể gọi một chức năng từ trong một chức năng khác. Khả năng này được gọi là sáng tác.composition. Ví dụ, chúng tôi sẽ viết một hàm có hai điểm, trung tâm của vòng tròn và một điểm trên chu vi và tính toán diện tích của vòng tròn. Giả sử rằng điểm trung tâm được lưu trữ trong các biến XC và YC, và điểm chu vi nằm trong XP và YP. Bước đầu tiên là tìm bán kính của vòng tròn, đó là khoảng cách giữa hai điểm. May mắn thay, chúng tôi chỉ viết một chức năng, khoảng cách, điều đó chỉ làm điều đó, vì vậy bây giờ tất cả những gì chúng ta phải làm là sử dụng nó:xc and yc, and the perimeter point is in xp and yp. The first step is to find the radius of the circle, which is the distance between the two points. Fortunately, we’ve just written a function, distance, that does just that, so now all we have to do is use it:
Bước thứ hai là tìm khu vực của một vòng tròn với bán kính đó và trả lại nó. Một lần nữa chúng tôi sẽ sử dụng một trong những chức năng trước đây của chúng tôi:
Kết thúc điều đó trong một chức năng, chúng tôi nhận được:
Chúng tôi đã gọi chức năng này khu vực2 để phân biệt nó với hàm khu vực được xác định trước đó.area2 to distinguish it from the area function defined earlier. Bán kính và kết quả các biến tạm thời rất hữu ích cho việc phát triển, gỡ lỗi và một bước thông qua mã để kiểm tra những gì đang xảy ra, nhưng một khi chương trình đang hoạt động, chúng ta có thể làm cho nó súc tích hơn bằng cách soạn các cuộc gọi chức năng:radius and result are useful for development, debugging, and single-stepping through the code to inspect what is happening, but once the program is working, we can make it more concise by composing the function calls:
6.5. Chức năng BooleanCác chức năng có thể trả về các giá trị Boolean, thường thuận tiện để che giấu các thử nghiệm phức tạp bên trong các chức năng. Ví dụ:
Người ta thường đưa ra các tên chức năng Boolean nghe có vẻ như có/không có câu hỏi. is_divisible trả về đúng hay sai để cho biết x có phải không chia hết cho y.Boolean functions names that sound like yes/no questions. is_divisible returns either True or False to indicate whether the x is or is not divisible by y. Chúng ta có thể làm cho chức năng súc tích hơn bằng cách tận dụng thực tế là điều kiện của câu lệnh IF là một biểu thức boolean. Chúng ta có thể trả lại trực tiếp, tránh hoàn toàn câu lệnh IF:if statement is itself a Boolean expression. We can return it directly, avoiding the if statement altogether:
Phiên này hiển thị chức năng mới trong hành động: biggest = max(3, 7, 2, 5) x = abs(3 - 11) + 104 Các chức năng Boolean thường được sử dụng trong các câu lệnh có điều kiện:
Có thể rất hấp dẫn khi viết một cái gì đó như:
Nhưng so sánh thêm là không cần thiết. 6.6. Lập trình với Style¶Khả năng đọc là rất quan trọng đối với các lập trình viên, vì trong các chương trình thực tế được đọc và sửa đổi thường xuyên hơn nhiều sau đó chúng được viết. Nhưng, giống như hầu hết các quy tắc, chúng tôi thỉnh thoảng phá vỡ chúng. Hầu hết các ví dụ mã trong cuốn sách này sẽ phù hợp với đề xuất nâng cao Python 8 (PEP 8), một hướng dẫn phong cách được phát triển bởi cộng đồng Python. Chúng tôi có nhiều điều để nói về phong cách khi các chương trình của chúng tôi trở nên phức tạp hơn, nhưng một vài gợi ý sẽ hữu ích:
6.7. Kiểm tra đơn vị¶Đó là một thực tiễn tốt nhất trong phát triển phần mềm để bao gồm kiểm tra đơn vị tự động của mã nguồn. Kiểm tra đơn vị cung cấp một cách để tự động xác minh rằng các đoạn mã riêng lẻ, chẳng hạn như các chức năng, đang hoạt động đúng. Điều này cho phép thay đổi việc thực hiện một chức năng sau đó và nhanh chóng kiểm tra rằng nó vẫn làm những gì nó dự định làm.unit testing of source code. Unit testing provides a way to automatically verify that individual pieces of code, such as functions, are working properly. This makes it possible to change the implementation of a function at a later time and quickly test that it still does what it was intended to do. Một số năm trước, các tổ chức đã có VEIW rằng tài sản có giá trị của họ là mã và tài liệu chương trình. Các tổ chức hiện sẽ chi một phần lớn ngân sách phần mềm của họ cho việc chế tạo (và bảo quản) các bài kiểm tra của họ. Kiểm tra đơn vị cũng buộc lập trình viên phải suy nghĩ về các trường hợp khác nhau mà chức năng cần phải xử lý. Bạn cũng chỉ phải nhập các bài kiểm tra một lần vào tập lệnh, thay vì phải tiếp tục nhập cùng một dữ liệu kiểm tra nhiều lần khi bạn phát triển mã của mình. Mã thêm trong chương trình của bạn ở đó vì nó giúp gỡ lỗi hoặc kiểm tra dễ dàng hơn được gọi là giàn giáo.scaffolding. Một bộ sưu tập các bài kiểm tra cho một số mã được gọi là bộ thử nghiệm của nó.test suite. Có một vài cách khác nhau để thực hiện thử nghiệm đơn vị trong Python - nhưng ở giai đoạn này, chúng tôi sẽ bỏ qua những gì cộng đồng Python thường làm và chúng tôi sẽ bắt đầu với hai chức năng mà chúng tôi sẽ tự viết. Chúng tôi sẽ sử dụng những điều này để viết các bài kiểm tra đơn vị của chúng tôi. Hãy bắt đầu với chức năng tuyệt đối_value mà chúng tôi đã viết trước đó trong chương này. Hãy nhớ lại rằng chúng tôi đã viết một vài phiên bản khác nhau, trong số đó không chính xác và có lỗi. Các bài kiểm tra có bắt được lỗi này không?absolute_value function that we wrote earlier in this chapter. Recall that we wrote a few different versions, the last of which was incorrect, and had a bug. Would tests have caught this bug? Đầu tiên chúng tôi lên kế hoạch cho các bài kiểm tra của chúng tôi. Chúng tôi muốn biết liệu hàm có trả về giá trị chính xác khi đối số của nó âm hay khi đối số của nó dương hay khi đối số của nó bằng không. Khi lên kế hoạch cho các bài kiểm tra của mình, bạn sẽ luôn muốn suy nghĩ cẩn thận về các trường hợp của Edge Edge - ở đây, một đối số của 0 đến tuyệt đối_value nằm trên cạnh của nơi hành vi chức năng thay đổi và như chúng ta đã thấy ở đầu chương, Đó là một điểm dễ dàng để lập trình viên phạm sai lầm! Vì vậy, đó là một trường hợp tốt để đưa vào bộ thử nghiệm của chúng tôi.absolute_value is on the edge of where the function behaviour changes, and as we saw at the beginning of the chapter, it is an easy spot for the programmer to make a mistake! So it is a good case to include in our test suite. Chúng tôi sẽ viết một chức năng trợ giúp để kiểm tra kết quả của một bài kiểm tra. Nó có một đối số boolean và sẽ in một tin nhắn cho chúng tôi biết rằng bài kiểm tra đã được thông qua, hoặc nó sẽ in một tin nhắn để thông báo cho chúng tôi rằng bài kiểm tra đã thất bại. Dòng đầu tiên của cơ thể (sau chức năng Doc DocString) xác định một cách kỳ diệu số dòng trong tập lệnh nơi cuộc gọi được thực hiện từ. Điều này cho phép chúng tôi in số dòng của bài kiểm tra, điều này sẽ giúp ích khi chúng tôi muốn xác định các bài kiểm tra nào đã vượt qua hoặc thất bại.
Ngoài ra còn có một số định dạng chuỗi hơi khó sử dụng phương thức định dạng mà chúng ta sẽ che đậy trong thời điểm này và bao gồm chi tiết trong một chương trong tương lai. Nhưng với chức năng này được viết, chúng tôi có thể tiến hành xây dựng bộ thử nghiệm của mình:format method which we will gloss over for the moment, and cover in detail in a future chapter. But with this function written, we can proceed to construct our test suite: biggest = max(3, 7, 2, 5) x = abs(3 - 11) + 108 Tại đây, bạn sẽ thấy rằng chúng tôi đã xây dựng năm thử nghiệm trong bộ thử nghiệm của chúng tôi. Chúng tôi có thể chạy điều này so với các phiên bản thứ nhất hoặc thứ hai (phiên bản chính xác) của exicute_value và chúng tôi đã nhận được đầu ra tương tự như sau:absolute_value, and we’d get output similar to the following: biggest = max(3, 7, 2, 5) x = abs(3 - 11) + 109 Nhưng hãy để nói rằng bạn thay đổi chức năng thành một phiên bản không chính xác như thế này:
Bạn có thể tìm thấy ít nhất hai lỗi trong mã này không? Bộ thử nghiệm của chúng tôi có thể! Chúng tôi nhận được: def area(radius): b = 3.14159 * radius**2 return b1 Đây là ba ví dụ về các bài kiểm tra thất bại. Có một câu lệnh Python tích hợp có tên Assert gần giống như chức năng thử nghiệm của chúng tôi (ngoại trừ chương trình dừng khi khẳng định đầu tiên thất bại). Bạn có thể muốn đọc về nó và sử dụng nó thay vì chức năng kiểm tra của chúng tôi.assert that does almost the same as our test function (except the program stops when the first assertion fails). You may want to read about it, and use it instead of our test function. 6.8. Bảng chú giải¶Chức năng boolean trả về giá trị boolean. Các giá trị duy nhất có thể của loại bool là false và true. Hàm chức năng hộp thư tương tác với người dùng (sử dụng đầu vào hoặc in) khi không nên. Các hàm im lặng chỉ chuyển đổi các đối số đầu vào của chúng thành kết quả đầu ra của chúng thường là các chức năng hữu ích nhất. . của mã tại một thời điểm. Giá trị python đặc biệt. Một cách sử dụng trong Python là nó được trả về bởi các chức năng không thực thi câu lệnh trả về với đối số trả về. Giá trị valuethe được cung cấp do kết quả của một hàm gọi.scaffoldingCode được sử dụng trong quá trình phát triển chương trình để hỗ trợ phát triển và gỡ lỗi. Mã kiểm tra đơn vị mà chúng tôi đã thêm trong chương này là các ví dụ về tính toán. Các đơn vị mã đang hoạt động đúng. Có một bộ kiểm tra cực kỳ hữu ích khi ai đó sửa đổi hoặc mở rộng mã: nó cung cấp một mạng lưới an toàn chống lại đi ngược bằng cách đặt các lỗi mới vào mã làm việc trước đó. Thuật ngữ kiểm tra hồi quy thường được sử dụng để nắm bắt ý tưởng này mà chúng tôi không muốn đi ngược!bool type are False and True.chatterbox functionA function which interacts with the user (using input or print) when it should not. Silent functions that just convert their input arguments into their output results are usually the most useful ones.composition (of functions)Calling one function from within the body of another, or using the return value of one function as an argument to the call of another.dead codePart of a program that can never be executed, often because it appears after a return statement.fruitful functionA function that yields a return value instead of None.incremental developmentA program development plan intended to simplify debugging by adding and testing only a small amount of code at a time.NoneA special Python value. One use in Python is that it is returned by functions that do not execute a return statement with a return argument.return valueThe value provided as the result of a function call.scaffoldingCode that is used during program development to assist with development and debugging. The unit test code that we added in this chapter are examples of scaffolding.temporary variableA variable used to store an intermediate value in a complex calculation.test suiteA collection of tests for some code you have written.unit testingAn automatic procedure used to validate that individual units of code are working properly. Having a test suite is extremely useful when somebody modifies or extends the code: it provides a safety net against going backwards by putting new bugs into previously working code. The term regression testing is often used to capture this idea that we don’t want to go backwards!6.9. Bài tậpTất cả các bài tập dưới đây nên được thêm vào một tệp. Trong tập tin đó, bạn cũng nên thêm các chức năng kiểm tra và kiểm tra của các chức năng giàn giáo được hiển thị ở trên, và sau đó, khi bạn làm việc thông qua các bài tập, thêm các bài kiểm tra mới vào bộ thử nghiệm của bạn. (Nếu bạn mở phiên bản trực tuyến của sách giáo khoa, bạn có thể dễ dàng sao chép và dán các bài kiểm tra và các đoạn mã vào trình soạn thảo Python của bạn.)test and test_suite scaffolding functions shown above, and then, as you work through the exercises, add the new tests to your test suite. (If you open the online version of the textbook, you can easily copy and paste the tests and the fragments of code into your Python editor.) Sau khi hoàn thành mỗi bài tập, xác nhận rằng tất cả các bài kiểm tra vượt qua.
Các chức năng hiệu quả trong Python là gì?Đây là các chức năng trả về một giá trị sau khi hoàn thành. Một chức năng hiệu quả phải luôn luôn trả về một giá trị cho nơi nó được gọi từ. Một hàm hiệu quả có thể trả về bất kỳ loại giá trị nào có thể là chuỗi, số nguyên, boolean, v.v.functions that return a value after their completion. A fruitful function must always return a value to where it is called from. A fruitful function can return any type of value may it be string, integer, boolean, etc.
Ví dụ chức năng hiệu quả là gì?Các hàm hiệu quả có nghĩa là hàm cho kết quả hoặc trả về giá trị sau khi thực hiện.Một số chức năng được thực thi nhưng không trả về bất kỳ giá trị nào.Trong khi viết các hàm hiệu quả, chúng tôi ngoại trừ giá trị trả về và vì vậy chúng tôi phải gán nó cho một biến để giữ giá trị trả về.the function that gives result or return values after execution. Some functions gets executed but doesn't return any value. While writing fruitful functions we except a return value and so we must assign it to a variable to hold return value.
Cái nào là một hàm void trong Python?Trong Python, có thể soạn một hàm mà không có câu lệnh trả về.Các chức năng như thế này được gọi là void và chúng không trả lại, đối tượng đặc biệt của Python cho "không có gì".Đây là một ví dụ về hàm void: >>> def Sayhello (WHO): In 'Xin chào,', ai + '!'a function without a return statement. Functions like this are called void, and they return None, Python's special object for "nothing". Here's an example of a void function: >>> def sayhello(who): print 'Hello,', who + '!'
Các chức năng Python là gì?Một hàm là một khối mã chỉ chạy khi nó được gọi.Bạn có thể truyền dữ liệu, được gọi là tham số, thành một hàm.Một chức năng có thể trả về dữ liệu như là kết quả.a block of code which only runs when it is called. You can pass data, known as parameters, into a function. A function can return data as a result. |