def__getitem__(self, n): if isinstance(n, int): # n是索引 a, b = 1, 1 for x in range(n): a, b = b, a + b return a if isinstance(n, slice): # n是切片 start = n.start stop = n.stop if start isNone: start = 0 a, b = 1, 1 L = [] for x in range(stop): if x >= start: L.append(a) a, b = b, a + b return L
deffib(num): """生成器""" a, b = 0, 1 for _ in range(num): a, b = b, a + b yield a classFib(object): """迭代器""" def__init__(self, num): self.num = num self.a, self.b = 0, 1 self.idx = 0 def__iter__(self): return self
defmain(): # for val in itertools.permutations('ABCD'): # print(val) # for val in itertools.combinations('ABCDE', 3): # print(val) # for val in itertools.product('黑红梅方', range(1, 14)): # print(val) # fib_iter = FibIter(20) # print('===>', next(fib_iter)) # print('===>', next(fib_iter)) # for val in fib_iter: # print(val) prime_iter = PrimeIter(2, 100000) for val in prime_iter: print(val)
he Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is,
1 2
F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), for N > 1.
classSolution: deffib(self, N: int) -> int: if N == 0or N == 1: return N fib = [0, 1, 0] for i in range(2, N + 1): fib[2] = fib[0] + fib[1] fib[0], fib[1] = fib[1], fib[2] return fib[-1]
1 2 3 4 5 6 7
defmain(): f = [1 , 1] for i in range(2, 20): f += [f[i - 1] + f[i - 2]] # f.append(f[i - 1] + f[i - 2]) for val in f: print(val, end=' ')