Bộ lặp Fibonacci
Bài học 11 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 (class) FibonacciIterator để tạo các số Fibonacci đến một giới hạn xác định. Lớp này cần triển khai giao thức bộ lặp (iterator) và có các phương thức sau:
__init__(self, limit): Khởi tạo bộ lặp với một giới hạn.__iter__(self): Trả về chính đối tượng bộ lặp.__next__(self): Tạo số Fibonacci tiếp theo hoặc phát sinh StopIteration khi đạt đến giới hạn.
Sau khi triển khai lớp FibonacciIterator, hãy tạo một instance từ lớp này, dùng giá trị đầu vào làm giới hạn. Sau đó, lặp qua các số Fibonacci và in từng số trên một dòng mới cho đến khi ngoại lệ StopIteration phát sinh.
Đầu vào sẽ có dạng như sau:
- Một số nguyên biểu thị giới hạn trên của dãy Fibonacci
Tự làm thử
# Đọc đầu vào
limit = int(input())
class FibonacciIterator:
def __init__(self, limit):
self.limit = limit
# TODO: Khởi tạo các thuộc tính cần thiết khác
def __iter__(self):
# TODO: Triển khai phương thức __iter__
def __next__(self):
# TODO: Triển khai phương thức __next__
# Tạo một instance của FibonacciIterator
fib_iterator = FibonacciIterator(limit)
# TODO: Duyệt qua các số Fibonacci và in ra từng số
# Gợi ý: Dùng vòng lặp for hoặc vòng lặp while với try-except để xử lý StopIteration
# Ví dụ về cách in ra một số Fibonacci:
# print(fib_number)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