Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PYTHON中使用列表的斐波那契序列?_Python_List_Fibonacci - Fatal编程技术网

在PYTHON中使用列表的斐波那契序列?

在PYTHON中使用列表的斐波那契序列?,python,list,fibonacci,Python,List,Fibonacci,我对将斐波那契序列生成列表有一个问题,我刚刚接触python,请有人帮帮我 这是我的密码。我知道这看起来是错误的,因为它说的是无效的语法。我真的不知道该怎么办: 此代码适用于普通代码,无需使用列表 myArray1 = [0] myArray2 = [1] while myArray2 < 700: myArray1, myArray2 = b[i], myArray1+myArray2[i] print(myArray2) 您可能需要: In [77]: a = 0

我对将斐波那契序列生成列表有一个问题,我刚刚接触python,请有人帮帮我

这是我的密码。我知道这看起来是错误的,因为它说的是无效的语法。我真的不知道该怎么办:

此代码适用于普通代码,无需使用列表

myArray1 = [0] 
myArray2 = [1]

while myArray2 < 700:
    myArray1, myArray2 = b[i], myArray1+myArray2[i]
    print(myArray2)
您可能需要:

In [77]: a = 0
    ...: b = 1
    ...: while b < 700:
    ...:     a, b = b, a+b
    ...:     print a, b
1 1
1 2
2 3
3 5
5 8
8 13
13 21
21 34
34 55
55 89
89 144
144 233
233 377
377 610
610 987
您可能需要:

In [77]: a = 0
    ...: b = 1
    ...: while b < 700:
    ...:     a, b = b, a+b
    ...:     print a, b
1 1
1 2
2 3
3 5
5 8
8 13
13 21
21 34
34 55
55 89
89 144
144 233
233 377
377 610
610 987

此代码将前700个斐波那契数放入列表中。使用有意义的变量名有助于提高可读性

fibonacci_numbers = [0, 1]
for i in range(2,700):
    fibonacci_numbers.append(fibonacci_numbers[i-1]+fibonacci_numbers[i-2])

注意:如果您使用的是Python<3,请使用xrange而不是range。

此代码将前700个fibonacci数字放入列表中。使用有意义的变量名有助于提高可读性

fibonacci_numbers = [0, 1]
for i in range(2,700):
    fibonacci_numbers.append(fibonacci_numbers[i-1]+fibonacci_numbers[i-2])

注意:如果您使用的是Python<3,请使用xrange而不是range;产生错误的错误和影响可读性的错误

短语[i]的两个实例都应删除。我相信您可能会认为它与迭代或元组有关,但这也是您出错的部分原因:

myArray1 = [0] 
myArray2 = [1]

while myArray2 < 700:
    myArray1, myArray2 = b, myArray1+myArray2
    print(myArray2)
因此,对于将转换为以下内容的代码:

a,b = 0,1

while b < 700:
    a, b = b, a+b
    print(a)
然后去掉多余的空间,空白在python中有某种意义,尽管在这里它并没有真正的区别:

a,b = 0,1
while b < 700:
    a, b = b, a+b
    print(a)
到目前为止,所有这些都足以解决您的原始问题:您在单独的一行上获得每个连续值的迭代。下面是如何获得任意数字n的列表:

def fibo(n):
    fibo_list = []
    a,b = 0,1
    while b < n:
        a,b = b,a+b
        fibo_list.append(a)
    print(fibo_list)

希望这对你有所帮助。你犯了两种错误;产生错误的错误和影响可读性的错误

短语[i]的两个实例都应删除。我相信您可能会认为它与迭代或元组有关,但这也是您出错的部分原因:

myArray1 = [0] 
myArray2 = [1]

while myArray2 < 700:
    myArray1, myArray2 = b, myArray1+myArray2
    print(myArray2)
因此,对于将转换为以下内容的代码:

a,b = 0,1

while b < 700:
    a, b = b, a+b
    print(a)
然后去掉多余的空间,空白在python中有某种意义,尽管在这里它并没有真正的区别:

a,b = 0,1
while b < 700:
    a, b = b, a+b
    print(a)
到目前为止,所有这些都足以解决您的原始问题:您在单独的一行上获得每个连续值的迭代。下面是如何获得任意数字n的列表:

def fibo(n):
    fibo_list = []
    a,b = 0,1
    while b < n:
        a,b = b,a+b
        fibo_list.append(a)
    print(fibo_list)

希望对您有所帮助

您可以使用下面的代码,您的问题只需一行代码即可解决。 我们正在做的是附加

fib_nums

直到您给定的限制,即

七百

然后添加

fib_nums

对于第二个长度为零的列表,我们显式地这样做,因为它包含

没有

价值观,这是我们不需要的

#defining variable
fib_nums = [0, 1] 

#just one line code
fib_nums = fib_nums + [fib_nums.append(fib_nums[i-1]+fib_nums[i-2]) for i in range(2,700)]*0

#printing the series
print (fib_nums)

您可以使用下面的代码,您的问题可以在一行内解决。 我们正在做的是附加

fib_nums

直到您给定的限制,即

七百

然后添加

fib_nums

对于第二个长度为零的列表,我们显式地这样做,因为它包含

没有

价值观,这是我们不需要的

#defining variable
fib_nums = [0, 1] 

#just one line code
fib_nums = fib_nums + [fib_nums.append(fib_nums[i-1]+fib_nums[i-2]) for i in range(2,700)]*0

#printing the series
print (fib_nums)

虽然速度不快,但效果也很好:

def fibonacci(n):
# return a list of fibonacci numbers
if n == 0:
    fibonacci_list = []
elif n == 1:
    fibonacci_list = [0]
elif n == 2:
    fibonacci_list = [0, 1]
elif n > 2:
    fibonacci_list = [0, 1]
    for i in range(n-2):
        fibonacci_list += [0]
        fibonacci_list[-1] = fibonacci_list[-2] + fibonacci_list[-3]
return fibonacci_list

虽然速度不快,但效果也很好:

def fibonacci(n):
# return a list of fibonacci numbers
if n == 0:
    fibonacci_list = []
elif n == 1:
    fibonacci_list = [0]
elif n == 2:
    fibonacci_list = [0, 1]
elif n > 2:
    fibonacci_list = [0, 1]
    for i in range(n-2):
        fibonacci_list += [0]
        fibonacci_list[-1] = fibonacci_list[-2] + fibonacci_list[-3]
return fibonacci_list

在Python中,这是一个列表,而不是a。b在哪里定义?而我呢?另外,当myArray2<700时,您试图将列表与整数进行比较。这不会引起一个令人遗憾的错误,但我相当肯定这不是您想要做的。您需要向我们展示您的整个程序,否则我们不知道您一直在尝试做什么。@MaxNoel实际上它在python3上引发了一个错误:TypeError:unorderable types:list<在Python中,这是一个列表,而不是一个。b在哪里定义的?而我呢?另外,当myArray2<700时,您试图将列表与整数进行比较。这不会引起一个令人遗憾的错误,但我相当确定这不是您想要做的。您需要向我们展示您的整个程序,否则我们不知道您一直在尝试做什么。@MaxNoel实际上它在python3上引发了一个错误:TypeError:unorderable types:list