MyTetra Share
Делитесь знаниями!
Фибоначчи
Время создания: 31.08.2017 21:02
Текстовые метки: challenge
Раздел: Python - Задачник - Итераторы
Запись: xintrea/mytetra_db_mcold/master/base/1503316861g9tjyqhdnp/text.html на raw.githubusercontent.com

Ну и, напоследок, давайте все-таки напишем свой собственный итератор (чуть было не дописал известную фразу Бендера)!


class Fibonacci: 
"""Итератор последовательности Фибоначчи до N""" 
  def __init__(self, N): 
    self.n, self.a, self.b, self.max = 0, 0, 1, N 
  def __iter__(self): 
    # сами себе итератор: в классе есть метод next() 
     return self 
  def next(self): 
     if self.n < self.max: 
       a, self.n, self.a, self.b = self.a, self.n+1, self.b, self.a+self.b 
       return a 
     else: 
       raise StopIteration 
# Использование: 
for i in Fibonacci(100): 
  print i,

 
MyTetra Share v.0.60
Яндекс индекс цитирования