以下是我对Fibonacci序列的上述任务的代码。我被告知我缩进不正确,但我仍然无法弄清楚它为什么会发生。请问有人可以找我吗?我非常感谢任何帮助。此外,我的代码适用于任务1但不适用于任务2.我得到的错误是 IndentationError:unindent与任何外部缩进级别都不匹配,这在经过几个小时的尝试排序后非常令人沮丧。
任务1 Fibonacci序列的前10个数字是: 0,1,1,2,3,5,8,13,21,34 序列由前两个数字(0和1)生成,每个后续数字是前两个数字的总和。 Fibonacci序列中最大的数字小于10 ^ 22?
任务2将以前的Fibonacci代码重写为一个函数,将一个或两个参数作为参数。如果有一个参数,则将所有Fibonacci数字打印到该数字。如果有两个参数,则在两个参数之间打印所有Fibonacci序列号。
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
答案 0 :(得分:0)
夫妻问题。
在第一项任务中,您只应打印小于10e22的数字。取消此处的python语句,因为您在代码中打印了该数字的所有数字。
x0,x1=0,1
while x1 < 1e22:
x0,x1=x1,x0+x1
print x1
#end of task 1
在第二个代码中,您似乎混淆了更新语句,并将x0
重新分配给自己。
def fibo(xmax,xmin=0):
x0,x1 = 0,1
while x0 <= xmax:
x0,x1=x1, x1+x0
if x0 >= xmin:
print x0
fibo(60,6)
#end of task 2
此外,由于您没有返回任何内容,因此您不应该print fibo(60,6)
,因为None
的隐式返回值会在最后打印出来。