如何用Python在一行中打印斐波那契数列?
一行打印斐波那契数列的实现方案
针对你现有代码的快速修改
你当前的代码会逐个打印每个斐波那契数并自动换行,只需修改print的参数就能实现一行输出:
n = int(input("Enter n: ")) # 转换为整数,补上原代码未使用的输入变量 def fib(n): cur = 1 old = 1 i = 1 while i < n: cur, old, i = cur + old, cur, i + 1 return cur # 用end参数控制每个打印后不换行,用空格分隔 for i in range(n): print(fib(i), end=' ') # 最后手动换行,避免后续输出跟在同一行 print()
运行后,所有斐波那契数会在同一行以空格分隔输出。
更高效的实现方式
你当前的fib函数每次调用都会重新计算,当n较大时效率很低。推荐直接生成完整的斐波那契序列,再一次性打印:
n = int(input("Enter n: ")) def generate_fib_sequence(terms): fib_seq = [] a, b = 0, 1 # 常规斐波那契数列起始:第0项0,第1项1 for _ in range(terms): fib_seq.append(a) a, b = b, a + b return fib_seq # 生成序列后,转为字符串并用空格连接,一行打印 print(' '.join(map(str, generate_fib_sequence(n))))
这个方案只需要一次迭代生成所有项,效率更高也更易维护。如果需要和你原代码的数列起始一致(从1开始),只需把a, b = 0, 1改成a, b = 1, 1即可。
内容的提问来源于stack exchange,提问作者Shin
相关产品推荐
相关产品推荐

