在我的程序中,我在最后一个数字后面打印了一个额外的空格。我怎样才能删除它?
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
现在我们可以通过使用sep
arprint
ator 而不是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
.
希望这对你有帮助!