斐波那契数列我之前的文章已经写到过,只是写的比较简单的递归方法,现在考虑了输入格式的问题,所以单独写一次.
输入格式考虑到输入为负和输入非数字的情况下进行重新输入,直到输入正确为止!
#递归斐波那契数列
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