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.
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,stopvàsteptrong 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ệ
StopIterationkhi 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,stopvà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ớiTấ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