【发布时间】:2018-09-03 14:59:29
【问题描述】:
我正在为斐波那契数列制作程序。
x=0
y=1
print (x)
print (y)
z = None
for z in range(1,100,x+y):
z=x+y
print(z)
x = y
y = z
问题是输出显示的数字超过 100。 这是输出的示例
0
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
为什么会有大于 100 的值?
注意:这个程序是用python 3.6编写的
【问题讨论】:
-
不确定这个问题,但这里有一些观察:
range(1,100,x+y)与range(1,100)相同,因为默认step值为1... 这意味着循环将迭代99次,你在循环之前有 2 个打印 stmts .. 所以总共有 101 行输出.. -
step 参数在整个 for 循环中不会改变,所以它总是一步一步。