尝试一:
    # 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13
    # 特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

    num = int(input(“How many items do you need?”))
    if num == 0:
    print(“0”)
    elif num == 1:
    print(“1”)
    else:
    a = []
    a[0] = 0
    a[1] = 1
    for i in range(0, num + 1):
    a[i] = a[i - 2] + a[i - 1]
    print(a)

    error:
    How many items do you need?2
    Traceback (most recent call last):
    File “F:\PycharmWorkSpace\菜鸟教程,Python实例\9斐波那契数列.py”, line 11, in
    a[0] = 0
    IndexError: list assignment index out of range

    分析:
    空数组不能直接指定位置。
    利用.append()试一下。


    尝试二:
    # 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13
    # 特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

    num = int(input(“How many items do you need?”))
    if num == 0:
    print(“0”)
    elif num == 1:
    print(“1”)
    else:
    a = []
    a.append(0)
    a.append(1)
    for i in range(2, num + 1):
    a.append(a[i - 2] + a[i - 1])
    print(a)

    结果:
    How many items do you need?10
    [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]


    思考:
    # 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13
    # 特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

    num = int(input(“How many items do you need?”))
    if num == 0:
    print(“0”)
    elif num == 1:
    print(“1”)
    else:
    a = []
    a.append(0)
    a.append(1)
    for i in range(2, num + 1):
    a[i] = a[i - 1] + a[i - 2]
    a.append(a[i])
    print(a)

    error:
    How many items do you need?10
    Traceback (most recent call last):
    File “F:\PycharmWorkSpace\菜鸟教程,Python实例\9斐波那契数列.py”, line 14, in
    a[i] = a[i - 1] + a[i - 2]
    IndexError: list assignment index out of range

    知道啦!因为在执行a[i] = a[i - 1] + a[i - 2]时,列表a的长度还是2(两个元素,下标从0开始),a[2]实际上是第三个元素,不存在,只有在执行完.append()之后,才会创建第三个元素,即a[2]


    递归生成斐波那契数列
    # 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13
    # 特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和
    def recurfibo(n):
    “””递归生成斐波那契数列”””
    _if n <= 1:
    return n

    1. else:<br /> return (recur_fibo(n - 1) + recur_fibo(n - 2))

    item = int(input(“Please enter the items you want to show:”))
    recur_fibo(item)

    结果:
    Please enter the items you want to show:10

    Process finished with exit code 0
    缺少打印的过程

    在末尾加上:
    for i in range(item):
    print(recur_fibo(i))

    F:\PycharmWorkSpace\菜鸟教程,Python实例\venv\Scripts\python.exe F:/Pycharm_WorkSpace/菜鸟教程,Python实例/9递归斐波那契数列.py
    Please enter the items you want to show:10
    0
    1
    1
    2
    3
    5
    8
    13
    21
    34

    Process finished with exit code 0