用逗号分隔的行中的数字

时间:2014-11-05 13:36:02

标签: python fibonacci

所以我有这个功能和以下代码:

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)

我要做的是将斐波那契数字打印在一行中用逗号分隔。我该怎么做?

2 个答案:

答案 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