如何去除尾数后的空格

问题描述 投票:0回答:1

在我的程序中,我在最后一个数字后面打印了一个额外的空格。我怎样才能去掉这个空格?

def fibonacci(n):
a = 0
b = 1
if n == 1:
    print(a, end=' ')
else:    
    print(a, end=' ')
    print(b, end=' ')
    for i in range(2, n):
        c = a + b
        a = b
        b = c
        print(c, end=' ')

fibonacci(int(input()))

请输入。 5 输出: 0 1 1 2 3 我在最后一个数字后面多打印了一个空格。

python python-3.x printing output
1个回答
1
投票

将生成数字的过程和打印数字的过程分开。(这是你应该做的事情 反正,但在这种情况下也会发生,以使问题更容易解决)。) 例如,我们可以使用一个发生器来 yield 多个值。请注意,我们不需要处理任何特殊的情况,我们也可以用 一包多用:

def fibonacci(n):
    a, b = 1, 1
    for i in range(n):
        yield a
        a, b = b, a + b

现在,我们可以通过使用 sep伪装者 print 而非 end,并将每个值作为一个单独的参数传递。要做到这一点,我们需要使用 *. 它看起来像。

print(*fibonacci(10), sep=' ')

我们得到了想要的结果,没有尾部空格。

1 1 2 3 5 8 13 21 34 55

1
投票

一个叫@Carcigenicate的人建议你可以用一个列表,

在下面的代码中已经把刚才的 print 语句有 list.append()

def fibonacci(n):
    l1=[]
    a = 0
    b = 1
    if n == 1:
        print(a, end=' ')
        l1.append(str(a))

    else:    
        l1.append(str(a))
        l1.append(str(b))
        for i in range(2, n):
            c = a + b
            a = b
            b = c
            l1.append(str(c))
    tr=" ".join(l1)
    print(tr,end='')
    print('h',end='')

fibonacci(int(input()))

输出。

8
0 1 1 2 3 5 8 13h

如你所见,在输出结果中,最后一个数字后面没有多余的空格。13 我已经打印了 h 之后 13.

希望对你有所帮助

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.