Được rồi.
Danh sách đồ sộ này cuối cùng đã được nhập vào bộ nhớ.
Nhưng hãy nhớ các điều khoản chính của chúng tôi.
Hãy nhớ cách tôi đã nói một danh sách là một danh sách có thể lặp lại?
Có thể lặp lại là gì?
Chà, một đối tượng có thể lặp lại là bất kỳ đối tượng nào trong Python mà chúng ta có thể lặp qua bên dưới mui xe.
Nó có phương thức nhập dunder.
Vì vậy, khi đối tượng được tạo, trình soạn thảo này cho phép chúng ta có một đối tượng có thể lặp lại có thể
được lặp đi lặp lại để lặp lại một cái gì đó hoặc lặp là hành động lấy một mục từ một mục có thể lặp lại làm một điều gì đó với nó, sau đó
chuyển sang mục tiếp theo.
Những gì chúng tôi sử dụng vòng lặp như vòng lặp for hoặc vòng lặp while, chúng tôi gọi đó là sự lặp lại.
Đó là quá trình tự nó.
Và máy phát điện.
Thực sự có thể lặp lại.
Đó là tất cả mọi thứ là một máy phát điện có thể lặp lại.
Bạn có thể lặp lại chúng, nhưng không phải mọi thứ có thể lặp lại đều là một trình tạo.
Ví dụ, một phạm vi là một máy phát điện.
Vì vậy, điều đó sẽ luôn có thể lặp lại.
Nhưng danh sách là một danh sách có thể lặp lại, nhưng nó không phải là một trình tạo.
Vì vậy, một trình tạo là một tập hợp con của một tập hợp có thể lặp lại.
Tôi biết đó là rất nhiều từ.
Hy vọng rằng bạn vẫn ở bên tôi.
Sự khác biệt giữa trình tạo và có thể lặp lại thông thường là cách chúng tôi triển khai chúng.
Vì vậy, hãy để tôi chỉ cho bạn một cách tổng quát để tạo một máy phát điện.
Hãy xóa mã này và xác định trình tạo của riêng chúng ta.
Và máy phát điện thường là các chức năng giống như phạm vi là một chức năng.
Máy phát điện thường được tạo theo cách này.
Vì vậy, hãy nói chức năng máy phát điện.
Và hàm trình tạo này sẽ có một vòng lặp bốn sẽ lặp lại trên một phạm vi giống như chúng ta đã có
trước đây.
Nhưng sự khác biệt ở đây, hãy thực sự mang lại mã mà chúng ta đã có trước đó.
Cô ấy sẽ bình luận điều này để chúng ta có thể thấy nó về sự khác biệt.
Chức năng máy phát sẽ được sử dụng.
Tạo, giả sử, nhiều mục này.
Nhưng thay vì trả về giống như chúng ta làm trong một hàm thông thường, chúng ta sẽ sử dụng một từ khóa có tên là lợi nhuận.
Và ở đây chúng ta sẽ nhường mục I so.
Vì vậy, nhận thấy sự khác biệt ở đây.
Bây giờ, nếu chúng ta muốn, giống như ở đây, chúng ta có thể vượt qua một số.
Như thế này.
Nhưng thay vì quay trở lại.
Và nối danh sách này và tạo tất cả dữ liệu này, chúng ta sẽ sử dụng eald.
Bây giờ Hield làm gì?
Bạn thấy đấy, Hield tạm dừng chức năng và quay lại với nó khi chúng tôi làm điều gì đó với nó, được gọi là tiếp theo, điều mà
chúng tôi sẽ trình bày ngay sau đây.
Vì vậy, Hield nói, Này, tạm dừng chức năng, chỉ cần Hield tôi đưa cho tôi và khi bạn bảo tôi tiếp tục làm lại, thì
tôi sẽ tiếp tục.
Vì vậy, làm thế nào chúng ta có thể làm điều này?
Vâng, tôi có thể nói cho mục trong chức năng máy phát điện.
Tôi sẽ.
In.
Các mặt hàng.
Bây giờ ở đây, những gì sẽ xảy ra là chúng ta sẽ lặp lại hàm máy tạo và chúng ta sẽ đưa nó
vào hàm máy tạo, giả sử bây giờ là 1000.
Và chúng tôi sẽ in từng mục trong hàm trình tạo bởi vì đây là một mục có thể lặp lại.
Nó sẽ chạy và nó sẽ lặp lại.
Và đối với mỗi mục trong số này sao cho nó nằm trong phạm vi, chúng ta sẽ nhường Y để nó tiếp tục lặp
lại và lặp lại.
Và khi chúng tôi quay lại, chúng tôi lặp lại.
Chúng tôi sẽ chạy điều này và lợi nhuận.
Quay lại và chạy lại.
Hãy để tôi chỉ cho bạn những gì tôi muốn nói.
Tôi sẽ bình luận điều này ra ngoài, bình luận điều này ra ngoài.
Và chỉ cần nhấp vào chạy ở đây.
Bạn có thấy điều đó không?
Những gì chúng ta vừa làm ở đây tương tự như ở dưới đây, nhưng thay vì phải tạo danh sách đó trong bộ nhớ, nó chỉ
tiếp tục diễn ra từng cái một.
Chúng tôi chỉ giữ một mục trong bộ nhớ.
Và chúng tôi đã sử dụng nó theo cách chúng tôi muốn.
Trong trường hợp của chúng tôi, tất cả những gì chúng tôi đã làm là mục in.
Hãy khám phá từ khóa này nhiều hơn một chút.
Nó thực sự làm gì?
Giả sử rằng chúng ta muốn nhân số này với hai, giống như chúng ta đã làm ở đây trong ví dụ ban đầu với các
danh sách.
Nhưng bây giờ, thay vì thực hiện vòng lặp bốn, chúng ta chỉ cần gọi hàm.
Và giả sử, gee, bằng chức năng của máy phát và chúng tôi sẽ cung cấp cho nó 100.
Bây giờ nếu tôi in G và tôi nhấp vào Chạy.
Bạn thấy điều đó?
Tôi nhận được một đối tượng máy phát điện.
Và hãy nhớ rằng, đây chỉ là cách tiêu chuẩn trong Python mà chúng ta có thể tạo một hàm trình tạo bằng cách
sử dụng từ khóa phạm vi và năng suất.
Nhưng từ khóa này cung cấp cho chúng ta một số sức mạnh bởi vì nếu tôi chỉ quay lại đây.
Chúng tôi sẽ không nhận được bất cứ điều gì đặc biệt.
Trên thực tế, thay vào đó chúng ta sẽ nhận được một giá trị bằng cách sử dụng từ khóa lợi nhuận.
Những gì chúng tôi có thể làm là biến điều này thành một chức năng máy phát điện có thể hoạt động tốt.
Điều này tôi có thể nói tiếp theo g.
Bây giờ nếu tôi in chữ G tiếp theo ở đây và tôi nhấp vào Chạy.
Tôi nhận được số không.
Nhưng đây là một phần thú vị.
Nếu tôi làm tiếp theo G hai lần và sau đó một lần ở đây và in nó.
Tôi nhận được cho.
Tại sao vậy?
Ghi nhớ từ khóa tạm dừng chức năng.
Vì vậy, những gì vừa xảy ra ở đây là tôi chạy hàm với 100.
Mục đầu tiên trong phạm vi 100 là 0.
Đúng.
Bây giờ ở đây trước khi tôi thậm chí có thể chạy nó, nó nói, Này, đây là một chức năng máy phát điện, nhưng lần đầu
tiên bạn chạy nó.
Cung cấp đầu ra không nhân hai lần để ngay lần đầu tiên chúng tôi chạy hàm này và tôi nhấp vào Chạy.
Chúng tôi sẽ đảm bảo chúng tôi thay đổi điều đó thành Tôi.
Đây chỉ là con số không.
Nếu tôi chạy lại nó như thế này, thì chúng tôi có.
Bây giờ tôi muốn bạn lặp lại và chuyển đến một.
Vì vậy, một lần hai.
Đó là gì?
Chà, một lần hai.
Hãy để tôi sửa nó.
Như thế này.
Hãy chắc chắn rằng đây là tôi, tôi nhận được hai vì một nhân hai là hai.
Nếu tôi chạy lại và tôi bấm chạy.
Tôi nhận được cho.
Bạn thấy đấy.
Hield, như tôi đã nói trước đây, tạm dừng chức năng và quay lại với nó khi lệnh tiếp theo được gọi.
Vì vậy, nếu nó có một từ khóa lợi nhuận, nó sẽ trở thành một trình tạo.
Nó theo dõi trạng thái này, cái mà chúng ta gọi là giá trị, và nó chỉ giữ dữ liệu gần đây nhất trong bộ
nhớ, ví dụ như nó ghi nhớ điều đó vì trên giả sử dòng 14 nếu tôi in G tiếp theo.
Nó nhớ rằng trước đây tôi đã từng.
Tốt cho.
Vì vậy, bây giờ, mặc dù đoạn mã này đã chạy, nếu tôi chạy nó trực tuyến, dòng 14.
Tôi nhận được sáu?
Vì ba nhân hai giếng là sáu, hãy nhớ, bởi vì nó nhân với hai.
Vì vậy, hãy để tôi hỏi bạn điều này.
Nếu giả sử tôi chỉ làm một loạt ở đây.
Và bạn biết những gì?
Hãy chỉ cần loại bỏ nhân với hai.
Nếu tôi làm điều này và tôi chạy tiếp theo nhiều hơn một lần, điều gì sẽ xảy ra nếu tôi nhấp vào Chạy ở
đây?
Tôi nhận được một điểm dừng.
Sự lặp lại.
Bạn thấy đấy, tiếp theo có thể được gọi bao nhiêu lần tùy thích.
Nhiều lần cho đến khi phạm vi này hết hạn.
Và khi chúng tôi vượt quá số lượng mục trong phạm vi.
Chà, chúng tôi gặp lỗi dừng lặp lại.
Để cho chúng tôi biết rằng, bạn không thể gọi tiếp theo nữa.
Chúng tôi đã đến cuối dòng và khi chúng tôi sử dụng cho các vòng lặp có phạm vi, nó thực sự phát hiện điều này bên dưới
mui xe cho bạn.
Vì vậy, chúng tôi có thể chạy một chức năng như thế này trong đó chúng tôi sử dụng phạm vi, mặc dù phạm vi là một trình tạo,
bởi vì vòng lặp for tự động nói, Này, tôi sẽ ngừng lặp lại ngay khi tôi gặp phải sự lặp lại dừng này, nhưng đó
ẩn khỏi chúng tôi với tư cách là người dùng.
Bây giờ, khái niệm này về máy phát điện khá khó hiểu, đặc biệt là lúc đầu.
Vì vậy, bạn có thể phải xem video này một vài lần, nhưng trong vài video tiếp theo, tôi muốn thuyết phục bạn
rằng chúng có sức mạnh như thế nào.
Hẹn gặp lại các bạn trong phần tiếp theo.