python 递归方法求斐波那契数列

斐波那契数列我之前的文章已经写到过,只是写的比较简单的递归方法,现在考虑了输入格式的问题,所以单独写一次.

输入格式考虑到输入为负和输入非数字的情况下进行重新输入,直到输入正确为止!

#递归斐波那契数列
def fbnq(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fbnq(n - 1) + fbnq(n - 2)

while True:
    #检查输入是否正确
    try:
        a = int(input('please input a positive number:'))
        if a < 0:
            continue
    except ValueError:
        continue
    print(' ')
    print('{}的斐波那契数列为:'.format(a))
    #依次列出斐波那契数列
    for i in range(1, a + 1):
        print(fbnq(i), end=' ')
    break
调试结果为:
please input a positive number:-10
please input a positive number:adc
please input a positive number:10
 
10的斐波那契数列为:
1 1 2 3 5 8 13 21 34 55 

你可能感兴趣的:(python 递归方法求斐波那契数列)