sách gpt4 ăn đã đi

Giải thích chi tiết cách sử dụng năng suất trong python - giải thích đơn giản và rõ ràng nhất

In lại Tác giả: qq735679552 Thời gian cập nhật: 28-09-2022 22:32:09 28 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này giải thích chi tiết cách sử dụng năng suất trong python - những lời giải thích đơn giản và rõ ràng nhất được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.

Trước hết, tôi muốn khiếu nại, tôi đã xem qua từ khóa "yield" khi đọc chương trình. Sau đó, khi tôi tìm kiếm trên Baidu, tôi thấy rằng không có ai có thể dễ dàng hiểu được. và rõ ràng. Những thông số nào và những gì được thông qua? Bạn cứ nói rằng hướng dẫn của bạn là đơn giản và dễ hiểu nhất, nhưng tôi chỉ muốn hỏi bạn đã xem xét đến cảm nhận của người đọc chưa.

Tiếp theo là chủ đề:

Trước hết, nếu bạn chưa có hiểu biết sơ bộ về lợi nhuận thì trước tiên bạn nên nghĩ lợi nhuận là "lợi nhuận". Đây là lợi nhuận trước hết có nghĩa là gì? một giá trị nhất định trong chương trình, chương trình sẽ không còn chạy sau khi quay trở lại. Sau khi xem nó như là return, hãy coi nó như một phần của một trình tạo (hàm có năng suất là trình vòng lặp thực sự). Chà, nếu bạn không hiểu những điều này, thì hãy coi năng suất là return trước. Sau đó, hãy xem trực tiếp chương trình sau và xem. bạn sẽ hiểu ý nghĩa đầy đủ của năng suất:

python" id="highlighter_764373">
?
1
2
3
4
5
6
7
8
9
định nghĩa foo():
  in ( "bắt đầu..." )
  trong khi ĐÚNG VẬY:
   độ phân giải = năng suất 4
   in ( "giải pháp:" ,độ phân giải)
g = foo()
in ( Kế tiếp (g))
in ( "*" * 20 )
in ( Kế tiếp (g))

Chỉ một vài dòng mã sẽ cho bạn hiểu năng suất là gì.

bắt đầu... 4 ********************** res: không có 4 。

Tôi trực tiếp giải thích trình tự chạy mã, tương đương với việc gỡ lỗi mã một bước:

1. Sau khi chương trình bắt đầu thực thi, vì trong hàm foo có từ khóa năng suất nên hàm foo sẽ không thực sự được thực thi. Thay vào đó, một trình tạo g (tương đương với một đối tượng) sẽ được lấy trước tiên.

2. Cho đến khi phương thức tiếp theo được gọi, hàm foo chính thức bắt đầu thực thi. Đầu tiên, phương thức in trong hàm foo được thực thi, sau đó đi vào vòng lặp while.

3. Chương trình gặp từ khóa năng suất và sau đó coi năng suất là trả về. Sau khi trả về 4, chương trình dừng và không thực hiện phép gán cho hoạt động res. Lúc này, việc thực thi câu lệnh next(g) đã hoàn tất. , do đó, hai dòng đầu ra đầu tiên là (Dòng đầu tiên là kết quả của print ở trên, dòng thứ hai là kết quả của return) là kết quả của việc thực thi print(next(g)).

4. Chương trình thực thi print("*"*20) và xuất ra 20 *.

5. Bắt đầu thực hiện lại lệnh print(next(g)) sau đây, lần này nó tương tự như lần trên, nhưng điểm khác biệt là lần này nó bắt đầu từ nơi chương trình tiếp theo dừng lại, tức là thao tác gán của res là được thực thi, xin lưu ý tại thời điểm này rằng không có giá trị nào ở phía bên phải của thao tác gán tại thời điểm này (vì kết quả trả về vừa tắt và không có tham số nào được chuyển sang phía bên trái của thao tác gán), vì vậy việc gán res tại thời điểm này là không có, vì vậy đầu ra sau đây là res:none.

6. Chương trình sẽ tiếp tục thực hiện trong thời gian đó và gặp lại kết quả. Lúc này, 4 cũng sẽ được trả về và sau đó chương trình sẽ dừng lại khi hàm in xuất ra 4.

Tại thời điểm này, bạn có thể hiểu mối quan hệ và sự khác biệt giữa năng suất và lợi nhuận. Hàm có năng suất là một trình tạo, không phải là hàm. Một hàm của trình tạo này là hàm tiếp theo và hàm tiếp theo tương đương với "bước tiếp theo" để tạo ra hàm nào. một Số, lần sau Điểm bắt đầu được thực thi từ nơi dừng tiếp theo cuối cùng, vì vậy khi next được gọi, trình tạo sẽ không thực thi từ đầu hàm foo mà sẽ chỉ bắt đầu từ nơi bước trước đã dừng, và sau khi gặp năng suất, return sẽ được thực thi. Số được tạo ra, bước này kết thúc.

?
1
2
3
4
5
6
7
8
9
định nghĩa foo():
  in ( "bắt đầu..." )
  trong khi ĐÚNG VẬY:
   độ phân giải = năng suất 4
   in ( "giải pháp:" ,độ phân giải)
g = foo()
in ( Kế tiếp (g))
in ( "*" * 20 )
in (g.gửi( 7 ))

Hãy xem một ví dụ khác về hàm gửi của trình tạo này. Ví dụ này thay thế dòng cuối cùng của ví dụ trên và đưa ra kết quả:

bắt đầu... 4 ********************** res: 7 4 。

Hãy nói ngắn gọn về khái niệm hàm gửi: Lúc này, bạn nên chú ý đến từ màu tím ở trên và tại sao giá trị của res ở trên lại bằng 0 và giá trị này lại trở thành 7. Tại sao lại như vậy? tham số là dành cho res, vì như đã đề cập ở trên, khi trả về, 4 không được gán cho res. Lần tiếp theo nó được thực thi, nó phải tiếp tục thực hiện thao tác gán và phải gán giá trị cho không. khi bắt đầu thực thi, Tiếp tục từ lần trước (trả về Sau khi thực hiện 4), trước tiên gán 7 cho res, sau đó thực thi chức năng tiếp theo, đáp ứng sản lượng tiếp theo và kết thúc sau khi trả về kết quả.

5. Chương trình thực thi g.send(7), và chương trình sẽ tiếp tục chạy xuống từ dòng từ khóa lợi nhuận, đồng thời gửi sẽ gán giá trị 7 cho biến res.

6. Vì phương thức gửi chứa phương thức next() nên chương trình sẽ tiếp tục chạy xuống dưới để thực thi phương thức in, sau đó nhập lại vòng lặp while.

7. Khi việc thực thi chương trình gặp lại từ khóa năng suất, năng suất sẽ trả về giá trị tiếp theo và chương trình sẽ tạm dừng lại cho đến khi phương thức tiếp theo hoặc phương thức gửi được gọi lại.

Vậy đó. Hãy nói về lý do tại sao chúng ta sử dụng trình tạo này bởi vì nếu chúng ta sử dụng một danh sách, nó sẽ chiếm nhiều không gian hơn. Ví dụ: 0,1,2,3,4,5,6... ... 1000.

Bạn có thể:

?
1
2
N TRONG phạm vi ( 1000 ):
  Một = N

Tại thời điểm này, range(1000) mặc định tạo một danh sách chứa 1000 số nên chiếm rất nhiều bộ nhớ.

Tại thời điểm này, bạn có thể sử dụng kết hợp lợi nhuận vừa rồi để tạo thành một trình tạo để triển khai hoặc bạn có thể sử dụng trình tạo xrange(1000) để triển khai nó.

kết hợp năng suất:

?
1
2
3
4
5
6
7
định nghĩa foo(số):
  in ( "bắt đầu..." )
  trong khi số< 10 :
   trong một = trong một + 1
   năng suất trong một
N TRONG foo( 0 ):
  in (N)

Đầu ra:

bắt đầu... 1 2 3 4 5 6 7 8 9 10 。

xrange(1000)

?
1
2
N TRONG xrange ( 1000 ):
  Một = N

Điều cần lưu ý là không có xrange() trong python3. Trong python3, range() là xrange(). Thay vào đó, bạn có thể kiểm tra loại range() trong python3. của một danh sách, xét cho cùng, điều này cần phải được tối ưu hóa. .

Trên đây là phần giải thích chi tiết và tích hợp cách sử dụng năng suất trong Python được biên tập viên giới thiệu. Tôi hy vọng nó sẽ hữu ích cho bạn. Nếu bạn có bất kỳ câu hỏi nào, vui lòng để lại tin nhắn cho tôi và biên tập viên sẽ trả lời bạn kịp thời. Tôi cũng xin cảm ơn mọi người đã ủng hộ trang web của tôi! .

Link gốc: https://blog.csdn.net/mieleizhi0522/article/details/82142856

Cuối cùng, bài viết giải thích chi tiết cách sử dụng năng suất trong python - lời giải thích đơn giản và rõ ràng nhất có ở đây. Nếu bạn muốn biết thêm về cách giải thích chi tiết về cách sử dụng năng suất trong python - lời giải thích đơn giản và rõ ràng nhất. , vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

28 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress