python输出问题,为什么输出的格式是这样的,而且还有一个none

为什么我的输出数列不是在print的文字后面,而且最后还有一个None占用在输出的数列位置上

img

img

1.顺序问题

print开始
 f开始
 f结束
print 结束

所以f比print先执行完成,这就是为啥数字(f)会在汉字(print)前面

2. None问题

最后一行代码

print("斐波那契数列为", f(n))

要打印的内容是"斐波那契数列为" 这个字符串,和 f(n) 的返回值,但是因为函数f没有指定返回值,所以返回了默认值None

3. 如果修改

如果你的目的是将函数的执行结果,和字符串一起输出的话,把函数中最后一行的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))

效果图如下:

img

回答不易,如有帮助,请采纳一下