一、计算素数
# 求100-200(包括100和200)里面所有的素数 # 提示:素数的特征是除了1和其本身能被整除,其它数都不能被整除的数 for i in range(100, 201): for j in range(2, i): if i % j == 0: break else: print("%d是素数" % i)
二、计算斐波那契数列
# 使用递归的方法打印出前n个斐波那契数列 # 斐波那契数列起始数字为0和1,之后每个数都是前两个数之和, # 比如:0,1,1,2,3,5,8,.. # def feibo(num): #num即i代表位数 # if num == 0: # return 0 # if num == 1: # return 1 # return feibo(num -1)+feibo(num - 2) # # i = 0 # while i <= 10: # print(feibo(i)) # i += 1 def fibonacci(n): def fibo(n): if n == 0: return 0 if n == 1: return 1 return fibo(n-1) + fibo(n-2) fibo_list = [] for i in range(n+1): fibo_list.append(fibo(i)) return fibo_list print(fibonacci(1)) print(fibonacci(2)) print(fibonacci(6))
""" 迭代器完成经典案例 斐波那契数列 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] """ # 自定义迭代器 class Fibonacci(object): def __init__(self, num): self.num = num # 保存 第一个位置和第二个位置 self.a = 0 self.b = 1 # 记录迭代的次数 self.current_index = 0 def __iter__(self): return self def __next__(self): if self.current_index < self.num: # 加一 self.current_index += 1 result = self.a self.a, self.b = self.b, self.a + self.b return result else: raise StopIteration if __name__ == '__main__': # 迭代器 fib = Fibonacci(10) # 启动迭代器 # print(next(fib)) # print(next(fib)) # print(next(fib)) # print(next(fib)) # print(next(fib)) # print(next(fib)) for i in fib: print(i)
# 生成器完成经典案例 斐波那契数列 # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] # 生成器创建方式02: def fibonacci(num): # 定义a 和 b a = 0 b = 1 # 记录下循环次数 current_index = 0 print("--------1") while current_index < num: current_index += 1 result = a a, b = b, a + b print("--------2") yield result print("--------3") if __name__ == '__main__': # 生成器是特殊的迭代器 fib = fibonacci(5) # 启动生成器 print(next(fib)) print(next(fib)) print(next(fib)) print(next(fib)) # print(next(fib)) # for i in fib: # print(i)