我试图用python3.3.2编写一个简短的函数。这是我的模块:
from math import sqrt
phi = (1 + sqrt(5))/2
phinverse = (1-sqrt(5))/2
def fib(n): # Write Fibonacci numbers up to n using the generating function
list = []
for i in range(0,n):
list = list.append(int(round((phi**i - phinverse**i)/sqrt(5), 0)))
return(list)
def flib(n): # Gives only the nth Fibonacci number
return(int(round((phi**n - phinverse**n)/sqrt(5), 0)))
if __name__ == "__main__":
import sys
fib(int(sys.argv[1]))
当我跑的时候斐波(6) ,我得到以下错误:
^{pr2}$如何更正此错误?在
append
调用不返回列表,它将就地更新。在应该变成
^{pr2}$您可能还应该调用参数而不是
list
,因为它也用这个词来标识list类。在您还可以使用列表理解:
返回类型
是
None
当你这样做时
list = list.append(int(round((phi**i - phinverse**i)/sqrt(5), 0)))
它正在分配
list=None
就这么做吧
^{pr2}$另外,
list
是一种内置类型。请使用其他名称。在相关问题 更多 >
编程相关推荐