所以我有这个功能和以下代码:
def fib():
first, second = 0, 1
start = int(input("Please input the desired number "))
for i in range(start):
second=first+second
first=second-first
yield first+second
line = ""
for i in fib():
line += str(i)
print(line)
我要做的是将斐波那契数字打印在一行中用逗号分隔。我该怎么做?
答案 0 :(得分:1)
调用fib
,将其转换为列表,然后打印结果。
print(list(fib()))
输出:
Please input the desired number 5
[2, 3, 5, 8, 13]
如果您不喜欢括号,可以将列表转换为字符串并将其删除。
print(str(list(fib())).strip("[]"))
#output: 2, 3, 5, 8, 13
......但这样做并没有多大意义。
答案 1 :(得分:-1)
首先,你的功能有点不对劲。您可以通过一些更改来修复它:
def fib():
first, second = 0, 1
for i in range(start):
second=first+second
first=second-first
yield first
您还需要从您的函数外部询问用户的输入:
start = int(input("Please input the desired number "))
现在,您可以将斐波纳契数字添加到列表中,并打印所有这些数字加入","达到用户指定的次数时。
line = []
line_app = line.append
fib = fib()
for i in range(start):
line_app(str(next(fib)))
print(", ".join(line))
修改强>
输入1:
Please input the desired number 4
输出1:
1, 1, 2, 3
输入2:
Please input the desired number 7
输出2:
1, 1, 2, 3, 5, 8, 13