Menu
CoddyTech

Bộ lặp phạm vi tùy chỉnh

Bài học 10 trên 13 trong khóa học Trình lặp trong Python của Coddy.

challenge icon

Thử thách

Dễ

Tạo một lớp bộ lặp (iterator) tùy chỉnh có tên StepRange, tạo ra một dãy số với bước nhảy tùy chỉnh. Bộ lặp này mô phỏng cách hoạt động của hàm range() tích hợp sẵn trong Python, nhưng linh hoạt hơn về bước nhảy.

Lớp StepRange cần:

  • Nhận các tham số start, stop và step trong hàm khởi tạo
  • Cài đặt phương thức __iter__() để trả về chính đối tượng bộ lặp đó
  • Cài đặt phương thức __next__() để tạo giá trị tiếp theo trong dãy
  • Xử lý cả bước nhảy dương và âm
  • Ném ngoại lệ StopIteration khi dãy đã hết

Sau khi cài đặt lớp StepRange, hãy tạo một instance từ lớp này bằng các giá trị đầu vào và in mỗi số được tạo ra trên một dòng mới.

Đầu vào sẽ có định dạng sau:

  • Ba số nguyên được phân tách bằng dấu cách, lần lượt biểu thị start, stop và step

Tự làm thử

# Đọc đầu vào
start, stop, step = map(int, input().split())

class StepRange:
    def __init__(self, start, stop, step):
        self.start = start
        self.stop = stop
        self.step = step
        self.current = start

    def __iter__(self):
        return self

    def __next__(self):
        # TODO: Triển khai phương thức (method) __next__()
        pass

# Tạo một instance của StepRange
step_range = StepRange(start, stop, step)

# TODO: Lặp qua StepRange và in ra từng giá trị
# Nhớ in mỗi giá trị trên một dòng mới

Tất cả bài học trong Trình lặp trong Python

Tự luyện tập: Trình biên dịch Python online