如何删除最后一个数字后面多余的空格



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

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
我在最后一个数字后面打印一个额外的空格。

将生成数字的过程与打印数字的过程分开。(无论如何,这是您应该做的事情,但在这种情况下也会发生这种情况,以便更轻松地解决问题。例如,我们可以使用生成器来yield多个值。请注意,我们不需要处理任何特殊情况,我们还可以将打包-解包成语用于多个作业:

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

现在我们可以通过使用separprintator 而不是end来显示这些由空格分隔的值,并将每个值作为单独的参数传递。为此,我们需要显式解压缩*.它看起来像:

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

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

1 1 2 3 5 8 13 21 34 55

建议您可以使用列表的@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之后没有多余的空格,我在13之后打印了h.

希望这对你有帮助!

最新更新