我们前面学过斐波那契数列,当时是用for循环来实现的,其实Python还可以用while循环来实现。 复习一下之前的for循环斐波那契数列程序 num_list = [1,1] index_input = int(input('第几个数?')) for i in range(2, index_input): num_list.append(num_list[i-2]+num_list[i-1]) print(num_list[index_input-1]) for循环是利用了数字的步长等进行了循环,而while是通过判断条件进行的,在英语当中,while解释为“当”,那么while循环就是表示当条件成立时,执行循环体的语句。那么下面我们就要介绍while循环了! while True: 是一条无限循环,True之前讲过,是布尔变量。 先初始一个列表 num_list = [1,1] 按照斐波那契数列定义为num_list添加值 num_list = [1,1] num = 2 num_list.append(num_list[num-1]+num_list[num-2]) print(num_list[num]) 将while循环放进程序里 num_list = [1,1] num = 2 while True: num_list.append(num_list[num-1]+num_list[num-2]) print(num_list[num]) 这时候,园友运行了这个程序,可能会有疑问:怎么打印出来一连串特别特别长的数字,根本看不出是斐波那契数列。那是因为计算机运算速度非常快,前面的较小的数字,一翻就翻过去了,根本看不清。 不用担心,这时,可以使用time库 在程序第一行输入 import time 如果我们要让程序等待一小段时间,可以使用sleep函数让程序等待。 import time num_list = [1,1] num = 2 while True: num_list.append(num_list[num-1]+num_list[num-2]) print(num_list[num]) num = num + 1 time.sleep(0.4) 不过老园友就看到不足之处了,这里是一直死循环的,如果做个退出就更好了。 正好我们可以复习break语句。 在循环外用户输入,值在循环内每循环一次-1,if来判断是否是0 import time num_list = [1,1] num = 2 max = input() while True: num_list.append(num_list[num-1]+num_list[num-2]) print(num_list[num]) num = num + 1 max -= 1 if max == 0: break time.sleep(0.4) 以上就是最终版程序 编辑:CMum |
|