Trình lặp lại trong Python: Trình lặp lại trong Python là gì và cách sử dụng nó?



Trong blog này về trình lặp Python, chúng tôi sẽ thực hiện một nghiên cứu chuyên sâu về Trình lặp trong Python và chúng được triển khai như thế nào.

Ngôn ngữ lập trình Python đã mở rộng từng khía cạnh của sự đổi mới bao gồm , , , v.v. Một trong nhiều lý do giải thích cho kỳ tích này là các khái niệm như Trình lặp lại Python, các khái niệm như thế này là các khối xây dựng thành công của Python như một ngôn ngữ lập trình. Trong bài viết này, chúng ta sẽ đi qua các khái niệm sau để hiểu về Trình lặp lại Python:

Trình lặp lại so với Có thể lặp lại

Một đối tượng trong Python, có thể được sử dụng như một đối tượng có thể lặp lại được gọi là Iterable. Về cơ bản, điều này có nghĩa là trình tự trong đối tượng có thể được lặp lại. Hầu hết các bộ sưu tập Python như danh sách , , tuple , bộ , và ngay cả phạm vi có thể được coi là một Lặp lại.





Trình lặp Python là gì?

Một con trăn I người thuê nhà là một vùng chứa chứa một số lượng giá trị có thể đếm được. Các giá trị trong vùng chứa có thể được duyệt qua bằng Trình lặp lại - đặc biệt là danh sách.

Ngoài khả năng truyền tải, lặp lại cũng cấp quyền truy cập vào các phần tử dữ liệu trong một vùng chứa nhưng bản thân nó không thực hiệnsự lặp lạitức là, không phải không có một số tự do đáng kể đối với khái niệm đó hoặc với việc sử dụng thuật ngữ một cách tầm thường. Một lặp lại gần tương tự như mộtcon trỏ cơ sở dữ liệutrong hành vi. Đây là một ví dụ đơn giản về Iterator trong .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (next (iter_obj))

Đầu ra: Edureka

Iterator là bất kỳ loại Python nào có thể được sử dụng với ‘vòng lặp for trong’.Bất kỳ đối tượng nào được sử dụng như một Iterator phải triển khai các phương thức sau.

trình vòng lặp trong python - edureka



1. __iter __ ()

Nó được gọi khi khởi tạo một Iterator.Nó sẽ trả về một đối tượng có phương thức tiếp theo hoặc __next__.

2. __tiếp __ ()

Phương thức tiếp theo của Iterator trả về giá trị tiếp theo cho Iterable.

Khi một Iterator được sử dụng với vòng lặp ‘for in’, next () được gọi ngầm bởi trên đối tượng Iterator. Phương pháp này nên sử dụng StopIteration để báo hiệu sự kết thúc của quá trình lặp.Hai phương thức này kết hợp với nhau được gọi là Giao thức Iterator. Hãy để chúng tôi cố gắng hiểu cách một vòng lặp for hoạt động như một Trình lặp lại trong Python với một ví dụ.

for i in object: print (i)

Hãy để chúng tôi hiểu cách hoạt động của vòng lặp for như một Trình lặp lại.

# tạo đối tượng trình lặp từ vòng lặp có thể lặp lại iter_obj = iter (có thể lặp lại) # vòng lặp vô hạn trong khi True: try: # lấy phần tử mục tiếp theo = tiếp theo (iter_obj) # làm điều gì đó với phần tử ngoại trừ StopIteration: # nếu StopIteration được nâng lên, hãy ngắt khỏi vòng lặp phá vỡ

Bây giờ chúng ta biết, làm thế nào vòng lặp for hoạt động như một Trình lặp lại. Hãy để chúng tôi hiểu cách chúng tôi có thể triển khai các Trình lặp tùy chỉnh trong Python.

Trình lặp tùy chỉnh

Bây giờ chúng ta hãy xem cách chúng ta có thể triển khai các Trình lặp tùy chỉnh trong Python. Để hiểu điều này, chúng tôi sẽ sử dụng một ví dụ. Trong ví dụ này, chúng ta sẽ triển khai các phương thức __iter __ () và __next __ ().

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter))

Đầu ra: một

2

3

Bây giờ chúng ta đã biết cách chúng ta có thể triển khai các Trình lặp tùy chỉnh, chúng ta hãy xem qua Trình lặp vô hạn trong Python.

Bộ lặp vô hạn

Không phải lúc nào cũng bắt buộc rằng mục trong một đối tượng Iterator phải cạn kiệt. Có thể có các Trình lặp vô hạn (không bao giờ kết thúc). Đây là một ví dụ cơ bản để chứng minh trình lặp vô hạn.

Tích hợp sẵn iter ()có thể được gọi với hai đối số trong đó đối số đầu tiên phải là một đối tượng (hàm) có thể được gọi và đối số thứ hai là sentinel. Iterator gọi hàm này cho đến khi giá trị trả về bằng với sentinel.

Hãy để chúng tôi lấy một ví dụ để hiểu điều này

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter))

Đầu ra: một
2
3
4
5

Trong ví dụ trên, việc thực thi sẽ tiếp tục miễn là chúng ta tiếp tục thêm câu lệnh print. Để dừng các lặp vô hạn, chúng ta cần sử dụng câu lệnh stopIteration.

chức năng tách trong ví dụ java

StopIteration

Để ngăn Lặp đi lặp lại mãi mãi, chúng ta sử dụng câu lệnh StopIteration. Hãy để chúng tôi hiểu điều này với một vài ví dụ.

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: nâng StopIteration myclass = MyNumbers () myiter = iter (myclass) cho x trong myiter: print (x)

Đầu ra: một
2
3
4
5

Ngay sau khi điều kiện là false, việc thực thi sẽ chuyển sang khối khác và sự lặp lại sẽ dừng lại. Bây giờ chúng ta hãy xem xét một vài ví dụ khác về Trình lặp lại trong Python.

Ví dụ về trình lặp lại trong Python

Dưới đây là một vài ví dụ khác về Trình lặp trong Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) print (next (iter_obj))

Đầu ra: Edureka

Trong ví dụ này, chúng tôi sử dụng tuple làm đối tượng có thể lặp lại.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (next (iter_obj))

Đầu ra: Edureka

Chúng tôi thậm chí có thể sử dụng chuỗi như một đối tượng có thể lặp lại trong python.

my_obj = 'Edureka' iter_obj = iter (my_obj) print (next (iter_obj))

Đầu ra:

Điều này đưa chúng ta đến phần cuối của bài viết này, nơi chúng ta đã học cách chúng ta sử dụng Trình lặp Python với các ví dụ. Tôi hy vọng bạn rõ ràng với tất cả những gì đã được chia sẻ với bạn trong hướng dẫn này.

Nếu bạn thấy bài viết này về “Trình lặp lại Python” có liên quan, hãy xem một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu.

Chúng tôi ở đây để giúp bạn từng bước trong hành trình của mình và đưa ra chương trình giảng dạy được thiết kế cho sinh viên và các chuyên gia muốn trở thành . Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Python và đào tạo bạn về cả khái niệm Python cốt lõi và nâng cao cùng với nhiều giống

Nếu bạn gặp bất kỳ câu hỏi nào, vui lòng đặt tất cả câu hỏi của bạn trong phần nhận xét của “Trình lặp lại Python”. Nhóm của chúng tôi sẽ vui lòng trả lời.