在我的程序中,我在最后一个数字后面打印了一个额外的空格。我怎样才能去掉这个空格?
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
伪装者 print
而非 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
我已经打印了 h
之后 13
.
希望对你有所帮助