Lợi nhuận Python từ so với lợi nhuận

Hàm là một công cụ mạnh được sử dụng trong nhiều ngôn ngữ lập trình. Trong Python, câu lệnh

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
1 được sử dụng để yêu cầu hàm xuất một giá trị cụ thể cho người gọi. Tuy nhiên, có một câu lệnh khác ít được biết đến hơn gọi là
>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
2 có thể được sử dụng để đạt được các hành vi khác nhau.

Trong bài viết này, chúng tôi thảo luận về sự khác biệt giữa năng suất và lợi nhuận trong Python. Để làm điều này, chúng ta sẽ khám phá các khái niệm khác bao gồm trình vòng lặp và trình tạo

Câu lệnh return trong Python là gì?

Các hàm là một phần thiết yếu của Python cho phép các khối mã được sử dụng lại nhiều lần. Các hàm cũng có thể sử dụng các đối số để làm cho chúng động để chúng ta có thể gọi cùng một hàm nhưng thay đổi các giá trị cụ thể dẫn đến đầu ra hoặc luồng lệnh khác nhau

Bằng cách sử dụng câu lệnh

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
1 trong một hàm, chúng ta có thể chỉ định đầu ra của hàm và kết thúc lời gọi hàm. Ví dụ

>>> def func(x, y):
..     result = x + y
..     return result
.. 
>>> 

Ví dụ này cho thấy một hàm nhận hai biến và trả về tổng của chúng. Câu lệnh return được sử dụng để xác định rằng đầu ra của hàm sẽ là biến có tên

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
4, là tổng của
>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
5 và
>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
6. Sau đó chúng ta có thể gọi hàm với các biến khác nhau

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7

Để tìm hiểu thêm về các lệnh gọi hàm, hãy xem phần "Gọi hàm là gì?" . Không thể gán cho cuộc gọi chức năng

Nhưng điều gì sẽ xảy ra nếu chúng ta không bao gồm một câu lệnh trả về bên trong một hàm? . Trên thực tế, có nhiều lúc bạn thậm chí sẽ không cần đến nó. Ví dụ

________số 8

Nếu chúng ta bỏ qua câu lệnh return như đã thấy trong ví dụ trước, hàm sẽ trả về giá trị mặc định là

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
7

Một ví dụ khác, giả sử điều duy nhất chúng ta muốn đạt được là in biến

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
4. Chúng ta chỉ có thể làm điều đó bên trong hàm và sau đó chúng ta sẽ không cần câu lệnh return

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
1

Trình vòng lặp trong Python là gì?

Lặp lại trong ngôn ngữ tiếng Anh có nghĩa là sự lặp lại của một quy trình, phản ánh việc sử dụng các lần lặp trong Python. Một iterable là một đối tượng có cấu trúc có thể được chuyển qua một phần tử tại một thời điểm. Ví dụ: các chuỗi, danh sách và bộ dữ liệu là các chuỗi có thể lặp lại vì bạn có thể lặp qua từng phần tử trong chúng theo thứ tự

Trình lặp trong Python là một đối tượng mà bạn có thể áp dụng phương thức

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
9 và lặp qua nó. Chúng ta có thể biến một iterable như list thành iterator với hàm tích hợp sẵn
>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
0

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
4

Trong ví dụ trên, chúng tôi đã sử dụng hàm

>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
0 để biến danh sách thành một trình vòng lặp được lưu trữ trong biến
>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
2. Chúng ta cũng có thể sử dụng phương pháp
>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
3 để làm điều tương tự. Sau đó, chúng ta có thể sử dụng phương thức
>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
9 hoặc hàm
>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
5 để lặp qua danh sách. Khi chúng tôi đến cuối danh sách, chúng tôi nhận được một ngoại lệ
>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
6. Như bạn có thể đoán, điều này cho thấy rằng chúng ta chỉ có thể lặp qua một trình vòng lặp một lần

Chúng ta cũng có thể chạy iterator thông qua vòng lặp

>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
7

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
2

Các vòng lặp

>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
8 ghép nối tự nhiên với các trình vòng lặp vì chúng được thiết kế để làm điều đó - gọi phương thức
>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
9 trên trình vòng lặp để cung cấp giá trị tiếp theo sẽ được sử dụng trong vòng lặp

Máy phát điện trong Python là gì?

Trong Python, trình tạo là một loại trình vòng lặp cụ thể. Trình tạo là trình vòng lặp, nhưng trình vòng lặp không phải là trình tạo. Trình tạo là một loại hàm trả về một trình vòng lặp thay vì một giá trị cụ thể. Điều này có nghĩa là đầu ra kết quả của hàm có thể được gọi nhiều lần thông qua

>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
5 để mang lại các giá trị khác nhau liên tiếp

Một dạng phổ biến mà các trình tạo trong Python sử dụng là "vòng lặp một dòng". Ví dụ

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
6

Ở đây, chúng tôi tạo một đối tượng trình tạo, với "vòng lặp một dòng" bên trong dấu ngoặc đơn. Và vì các trình tạo là các trình vòng lặp, chúng ta có thể lặp qua chúng bằng hàm

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
11

Như chúng ta sẽ thấy bây giờ, chúng ta cũng có thể tạo một trình tạo với định nghĩa hàm bình thường bằng cách sử dụng câu lệnh

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
2

Năng suất trong Python là gì?

Câu lệnh năng suất trong Python được sử dụng cụ thể bên trong các định nghĩa hàm để tạo trình tạo. Ví dụ

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
9

Ở đây, chúng ta định nghĩa một hàm

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
13 với ba câu lệnh suất. Trong ví dụ này, chúng ta biết rằng chúng ta thực sự có thể sử dụng câu lệnh suất nhiều lần trong một hàm. Cuộc gọi chức năng bây giờ là loại
>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
14. Khi chúng tôi lặp qua trình tạo với next(), mỗi giá trị được tạo ra một cách tuần tự

Một cách khác để sử dụng năng suất được hiển thị bên dưới

>>> def func(x, y):
..     result = x + y
..     return result
.. 
>>> 
2

Ở đây, chúng tôi tạo ra trình tạo giống như chúng tôi đã làm trong phần trước với "vòng lặp một dòng". Sau đó, chúng tôi lặp qua trình tạo với tiếp theo

Sự khác biệt giữa năng suất và lợi nhuận là gì?

Cả hai câu lệnh yield và return đều được sử dụng bên trong các định nghĩa hàm. Tuy nhiên, câu lệnh return chỉ được thực hiện một lần trong một lệnh gọi hàm duy nhất, nhưng năng suất như chúng ta đã thấy trong phần trước có thể được sử dụng nhiều lần trong một lệnh gọi hàm. Hơn nữa, câu lệnh return trả về một giá trị biến hoặc biểu thức cụ thể, trong khi câu lệnh suất trả về một trình vòng lặp có thể được lặp lại bằng cách sử dụng

>>> def func(x, y):
..     result = x + y
.. 
>>> print(func(1, 2))
None
5

Câu lệnh yield cũng hiệu quả hơn về bộ nhớ so với câu lệnh return trong một số trường hợp nhất định. Ví dụ

>>> def func(x, y):
..     result = x + y
..     return result
.. 
>>> 
4

Ở đây, chúng tôi muốn sửa đổi danh sách

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
16 và sau đó lặp qua nó mà không thay đổi danh sách ban đầu

Với câu lệnh return, chúng ta phải tạo một danh sách mới, sửa đổi danh sách đó và sau đó trả về danh sách mới. Khi lặp qua danh sách mới, danh sách đó sẽ được lưu trong bộ nhớ. Bây giờ hãy xem cách tiếp cận với câu lệnh suất

>>> print(func(1, 2))
3
>>> print(func(3, 4))
7
0

Chúng ta có thể thấy rằng trình tạo sẽ mang lại từng mục trong danh sách với 1 mục được thêm vào. Bây giờ, khi chúng ta chạy vòng lặp for trên hàm, nó chỉ mang lại kết quả tiếp theo từ trình vòng lặp mỗi lần. Chúng tôi không còn phải lưu trữ một danh sách bổ sung trong bộ nhớ. Điều này làm cho năng suất bộ nhớ hiệu quả hơn trong trường hợp này

Tóm lược

Trong bài viết này, chúng ta đã so sánh các từ khóa yield và return trong Python và hiểu khi nào thì sử dụng cái này thay vì cái kia là đúng. Đầu tiên chúng ta khám phá ngắn gọn hàm và câu lệnh trả về trong Python là gì. Sau đó, chúng tôi hiểu iterables và generators là gì. Sau đó, chúng tôi đã thấy cách sử dụng năng suất bên trong một hàm làm cho hàm đó trở thành trình tạo. Cuối cùng, chúng tôi đã liên kết tất cả các khái niệm này lại với nhau để hiểu sự khác biệt giữa năng suất và lợi nhuận

Bước tiếp theo

Nếu bạn muốn tìm hiểu thêm về những kiến ​​thức cơ bản về Python, mã hóa và phát triển phần mềm, hãy xem Sách hướng dẫn những điều cơ bản về mã hóa dành cho nhà phát triển của chúng tôi, nơi chúng tôi đề cập đến các ngôn ngữ, khái niệm và công cụ thiết yếu mà bạn sẽ cần để trở thành một nhà phát triển chuyên nghiệp

Cảm ơn và mã hóa hạnh phúc. Chúng tôi hy vọng bạn thích bài viết này. Nếu bạn có bất kỳ câu hỏi hoặc nhận xét nào, vui lòng liên hệ với jacob@initialcommit. io

Năng suất khác với Python trả về như thế nào?

Phần kết luận. Câu lệnh yield tạo ra một đối tượng trình tạo và có thể trả về nhiều giá trị cho người gọi mà không kết thúc chương trình, trong khi câu lệnh return được sử dụng để trả về giá trị cho người gọi từ bên trong một hàm và nó kết thúc chương trình

Sự khác biệt giữa lợi nhuận và năng suất là gì?

Lợi tức là số tiền mà một khoản đầu tư kiếm được trong một khoảng thời gian, thường được phản ánh dưới dạng phần trăm. Lợi nhuận là số tiền mà một khoản đầu tư kiếm được hoặc mất đi theo thời gian, được phản ánh dưới dạng chênh lệch giá trị đồng đô la của khoản đầu tư. Sản lượng là hướng tới tương lai và lợi tức là lạc hậu

Bạn có thể mang lại và trả lại trong cùng một hàm Python không?

Được phép trong Python 3. x , nhưng chủ yếu được sử dụng với các coroutine - bạn thực hiện các lệnh gọi không đồng bộ đến các coroutine khác bằng cách sử dụng yield coroutine() (hoặc yield từ coroutine() , .

Tôi có thể mang lại hai giá trị Python không?

Nếu bạn muốn trả về nhiều giá trị từ một hàm, bạn có thể sử dụng hàm tạo với từ khóa lợi nhuận . Các biểu thức năng suất trả về nhiều giá trị. Chúng trả về một giá trị, sau đó đợi, lưu trạng thái cục bộ và tiếp tục lại.