【发布时间】:2013-09-07 11:34:35
【问题描述】:
这是我为斐波那契数列执行上述任务的代码。有人告诉我我缩进不正确,但我仍然无法弄清楚为什么会发生这种情况。有谁能帮我看看吗?我非常感谢任何帮助。此外,我的代码适用于任务 1,但不适用于任务 2。我得到的错误是 IndentationError: unindent does not match any external indentation level,经过数小时的尝试整理,这真的令人沮丧。
任务 1 斐波那契数列的前 10 个数字是: 0、1、1、2、3、5、8、13、21、34 该序列由前两个数字(0 和 1)生成,随后的每个数字都是前两个数字的和。斐波那契数列中小于 10^22 的最大数是多少?
任务 2 将您之前的斐波那契代码重写为一个以一个或两个参数作为参数的函数。如果有一个参数,则打印该数字之前的所有斐波那契数。如果有两个参数,则打印两个参数之间的所有斐波那契数列。
x0,x1=0,1
while x1 < 1e22:
x0,x1=x1,x0+x1
print x1
#end of task 1
def fibo(xmax,xmin=0):
x0,x1 = 0,1
while x0 <= xmax:
x0,x1=x0,x0+x1
if x0 >= xmin:
print x0
print fibo(60,6)
#end of task 2
【问题讨论】:
-
我没有看到任何缩进错误,但是您的
fibo函数中有一个无限循环,因为x0始终为 0,因此x0 <= xmax在每次迭代中都是 true。 -
你用什么来运行这段代码,有没有关于这个错误的行号等指示?
标签: python while-loop sequence fibonacci function