所以,我有这段代码:
print("%d" % a, end=(" "))
它有效,但在输出中,最后一个数字后面有一个空格。我需要摆脱最后的空白。我的输出需要显示在同一行,用空格分隔。在最后一个值之后应该没有空格。
这是一个例子:(n是输入,所以假设n = 5)
0 1 1 2 3
我试过.strip,.join,但没有一个能奏效。我该怎么做才能获得正确的输出?对不起,如果这是一个简单的问题,我是python的新手。
编辑:edit2:
a, b, i = 0, 1, 0
n=int(input())
for j in range(0, n):
while i < n:
print("%d" % a)
a, b = b, a + b
i += 1
答案 0 :(得分:1)
您正在使用end
参数自行添加尾随空格。
print("%d" % a, end=(" "))
表示以a
结尾打印' '
。删除end
参数,将不再打印尾随空格(将打印默认的'\n'
)。有关详细信息,请参阅the docs for print()
。
另请注意,end
参数不会影响您正在打印的字符串,即a
不受end
的影响。如果字符串a
中有尾随空格,则a.strip()
将删除该空格。在您的情况下,strip()
没有删除它的原因是该空间不在您正在打印的字符串中,而是由print()
函数添加到视觉输出中。
很难说,因为在编辑中的代码片段之前或之后发生的事情是个谜,但听起来你想做的事情如下:
a, b, i = 0, 1, 0
n=int(input())
nums = []
for j in range(0, n):
while i < n:
nums.append(str(a))
...
# Based on your desired output,
# I assume you modify the value of `a` somwhere in here
...
print(' '.join(nums))