为什么我的输出数列不是在print的文字后面,而且最后还有一个None占用在输出的数列位置上
print开始
f开始
f结束
print 结束
所以f比print先执行完成,这就是为啥数字(f)会在汉字(print)前面
最后一行代码
print("斐波那契数列为", f(n))
要打印的内容是"斐波那契数列为"
这个字符串,和 f(n)
的返回值,但是因为函数f
没有指定返回值,所以返回了默认值None
如果你的目的是将函数的执行结果,和字符串一起输出的话,把函数中最后一行的print
改为return
既可
return fibs
这样,数列不会作为代码在f函数结束千执行,而且返回给调用者print,和前面的字符串一起输出
不知道你是不是想要这个效果,需要返回一个斐波那契数列,
输出为None是应为函数f缺少返回语句所以python 默认返回None
如果需要返回,就在f函数中加上 return fibs
代码如下
def f(num) :
fibs = [0,1]
if num <= 0:
print("输入的个数错误!")
elif num == 1:
print([0])
elif num == 2:
print(fibs)
else:
for i in range(num-2):
fibs.append(fibs[-2] + fibs[-1])
print(fibs)
return fibs
var = 1
while var == 1:
n = int(input("需要输出的斐波那契数列的个数是:"))
print("斐波那契数列为: ",f(n))
效果图如下:
回答不易,如有帮助,请采纳一下