分享

while循环实现斐波那契数列

 长沙7喜 2017-12-26

我们前面学过斐波那契数列,当时是用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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多