Hướng dẫn Python

TRANG CHỦ Python Giới thiệu Python Python Bắt đầu Cú pháp Python Nhận xét Python Biến Python Các kiểu dữ liệu Python Số Python Đúc Python Chuỗi Python Python Booleans Toán tử Python Danh sách Python Python Tuples Bộ Python Từ điển Python Python Nếu ... Khác Python While Loops Python cho các vòng lặp Các hàm Python Python Lambda Mảng Python Các lớp / đối tượng Python Kế thừa Python Trình lặp lại Python Phạm vi Python Mô-đun Python Ngày trong Python Toán Python JSON Python Python RegEx Python PIP Python Thử ... Ngoại trừ Đầu vào của người dùng Python Định dạng chuỗi Python

Xử lý tập tin

Xử lý tệp Python Tệp đọc Python Viết / tạo tệp trong Python Xóa tệp trong Python

Mô-đun Python

Hướng dẫn NumPy Panda Walkthrough Hướng dẫn Scipy

Python Matplotlib

Giới thiệu Matplotlib Matplotlib Bắt đầu Matplotlib Pyplot Matplotlib Plotting Điểm đánh dấu Matplotlib Dòng Matplotlib Nhãn Matplotlib Matplotlib Grid Matplotlib Subplots Matplotlib Scatter Matplotlib Bars Biểu đồ Matplotlib Biểu đồ bánh Matplotlib

Học máy

Bắt đầu Chế độ trung bình trung bình Độ lệch chuẩn Phân vị Phân phối dữ liệu Phân phối dữ liệu bình thường Lô phân tán Hồi quy tuyến tính Hồi quy đa thức Nhiều hồi quy Tỉ lệ Huấn luyện / Kiểm tra Cây quyết định

Python MySQL

MySQL Bắt đầu MySQL Tạo cơ sở dữ liệu MySQL Tạo bảng Chèn MySQL Lựa chọn MySQL MySQL ở đâu MySQL Đặt hàng bởi MySQL Delete Bảng thả MySQL Cập nhật MySQL Giới hạn MySQL Tham gia MySQL

Python MongoDB

MongoDB Bắt đầu MongoDB Tạo cơ sở dữ liệu MongoDB Tạo Bộ sưu tập Chèn MongoDB MongoDB Tìm Truy vấn MongoDB MongoDB sắp xếp MongoDB Xóa MongoDB Drop Collection Cập nhật MongoDB Giới hạn MongoDB

Tham khảo Python

Tổng quan về Python Các hàm tích hợp trong Python Phương thức chuỗi Python Phương thức danh sách Python Phương thức từ điển Python Phương thức Tuple trong Python Phương thức tập hợp Python Phương thức tệp Python Từ khóa Python Ngoại lệ Python Bảng chú giải thuật ngữ Python

Tham chiếu mô-đun

Mô-đun ngẫu nhiên Mô-đun yêu cầu Mô-đun thống kê Mô-đun Toán học Mô-đun cMath

Python Làm thế nào để

Xóa danh sách trùng lặp Đảo ngược một chuỗi Thêm hai số

Ví dụ Python

Ví dụ Python Trình biên dịch Python Bài tập Python Python Quiz Chứng chỉ Python

Trình lặp lại Python


Trình lặp lại Python

Một trình lặp là một đối tượng có chứa một số giá trị có thể đếm được.

Trình lặp là một đối tượng có thể được lặp lại, có nghĩa là bạn có thể duyệt qua tất cả các giá trị.

Về mặt kỹ thuật, trong Python, một trình vòng lặp là một đối tượng thực hiện giao thức trình vòng lặp, bao gồm các phương thức __iter__()__next__().


Lặp lại so với lặp lại

Danh sách, bộ giá trị, từ điển và bộ đều là các đối tượng có thể lặp lại. Chúng là các vùng chứa có thể lặp lại mà bạn có thể lấy một trình vòng lặp.

Tất cả các đối tượng này có một iter()phương thức được sử dụng để lấy một trình vòng lặp:

Thí dụ

Trả về một trình lặp từ một bộ tuple và in từng giá trị:

mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)

print(next(myit))
print(next(myit))
print(next(myit))

Các chuỗi thậm chí là các đối tượng có thể lặp lại và có thể trả về một trình lặp:

Thí dụ

Chuỗi cũng là các đối tượng có thể lặp lại, chứa một chuỗi các ký tự:

mystr = "banana"
myit = iter(mystr)

print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))

Looping qua một lặp lại

Chúng ta cũng có thể sử dụng một forvòng lặp để lặp qua một đối tượng có thể lặp lại:

Thí dụ

Lặp lại các giá trị của một tuple:

mytuple = ("apple", "banana", "cherry")

for x in mytuple:
  print(x)

Thí dụ

Lặp lại các ký tự của một chuỗi:

mystr = "banana"

for x in mystr:
  print(x)

Vòng forlặp thực sự tạo ra một đối tượng trình lặp và thực thi phương thức next () cho mỗi vòng lặp.



Tạo một Trình lặp lại

Để tạo một đối tượng / lớp như một trình vòng lặp, bạn phải triển khai các phương thức __iter__() __next__()đối tượng của mình.

Như bạn đã học trong chương Lớp / Đối tượng trong Python , tất cả các lớp đều có một hàm được gọi __init__(), cho phép bạn thực hiện một số khởi tạo khi đối tượng đang được tạo.

Phương __iter__()thức này hoạt động tương tự, bạn có thể thực hiện các hoạt động (khởi tạo, v.v.), nhưng phải luôn trả về chính đối tượng trình lặp.

Phương __next__()thức này cũng cho phép bạn thực hiện các thao tác và phải trả về mục tiếp theo trong chuỗi.

Thí dụ

Tạo một trình lặp trả về các số, bắt đầu bằng 1 và mỗi chuỗi sẽ tăng thêm một (trả về 1,2,3,4,5, v.v.):

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))

StopIteration

Ví dụ trên sẽ tiếp tục mãi mãi nếu bạn có đủ câu lệnh next () hoặc nếu nó được sử dụng trong một forvòng lặp.

Để ngăn việc lặp đi lặp lại mãi mãi, chúng ta có thể sử dụng StopIterationcâu lệnh.

Trong __next__()phương thức này, chúng ta có thể thêm điều kiện kết thúc để tạo ra lỗi nếu việc lặp được thực hiện một số lần cụ thể:

Thí dụ

Dừng sau 20 lần lặp:

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self

  def __next__(self):
    if self.a <= 20:
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration

myclass = MyNumbers()
myiter = iter(myclass)

for x in myiter:
  print(x)