我正在尝试创建一个函数,它打印Fibonacci序列中前4个数字的列表,Fibonacci序列中的前10个数字,然后是Fibonacci序列中的“前-4个”数字。 Fibonacci序列中的“-4”数字应该返回一个空列表,因为序列中没有“-4”数字。我需要函数来打印3个列表作为main()函数的最终结果。到目前为止,这是我的代码,我是新手,所以任何帮助都会受到赞赏。
fn = []
def F(n):
i = 0
a = 0
b = 1
for i in range(0,n):
temp = a
a = b
b = temp + b
fn.append(b)
i = i + 1
return fn
main():
print F(4)
print F(10)
print F(-4)
答案 0 :(得分:0)
生成Fibonacci数的函数是正确的,除了应在函数体中声明全局变量fn = []
。另外,正如@alfasin的评论中所建议的那样,a, b = b, a + b
更像是Pythonic。
def fib_list(n):
a = 0; b = 1; fib_list = []
if n <= 0:
return
for i in range(0, n):
a, b = b, a + b
fib_list.append(b)
return fib_list
我可以在您的代码中找到的其他问题:
* print
不是Python 3.x.x中的语句,而是一个函数,即print F(4)
应为print(F(4))
* main():
应更改为if __name__ == '__main__':