如何删除循环内单行输出的最后一个空格?
How to remove last whitespace of a single line output inside a loop?
我希望我的输出在一行中,这就是我使用 end = ' '
的原因,但由于它在一个循环中,它还在最后一个值之后添加 space 我不想。我尝试使用 strip()
但它删除了每个 space。那么如何从该循环的输出中删除最后一个 space?
import math
f0 = int(input())
r = math.pow (2, 1/12)
for i in range(5):
f1 = f0 * (r ** i )
print('{:.2f}'.format(f1), end= ' ')
预期输出:如果输入为 440
440.00 466.16 493.88 523.25 554.37
我的输出:440.00 466.16 493.88 523.25 554.37
您可以添加 if-else 语句并将其应用于循环的最后一次迭代。
import math
f0 = int(input())
r = math.pow(2, 1/12)
for i in range(5):
f1 = f0 * (r ** i )
if i == 5:
print('{:.2f}'.format(f1))
else:
print('{:.2f}'.format(f1), end= ' ')
考虑将 for 循环替换为生成器表达式以及 str.join
,如下所示:
print(' '.join((f'{f0*r**i:.2f}' for i in range(5))))
输出:440.00 466.16 493.88 523.25 554.37
这种方法使您不必在循环的最后一个迭代器上有不同的行为,也不必在之后编辑字符串。
str.join
在可迭代对象的每个元素之间插入字符串(在本例中为 ' '
),但不在开头或结尾。
我希望我的输出在一行中,这就是我使用 end = ' '
的原因,但由于它在一个循环中,它还在最后一个值之后添加 space 我不想。我尝试使用 strip()
但它删除了每个 space。那么如何从该循环的输出中删除最后一个 space?
import math
f0 = int(input())
r = math.pow (2, 1/12)
for i in range(5):
f1 = f0 * (r ** i )
print('{:.2f}'.format(f1), end= ' ')
预期输出:如果输入为 440
440.00 466.16 493.88 523.25 554.37
我的输出:440.00 466.16 493.88 523.25 554.37
您可以添加 if-else 语句并将其应用于循环的最后一次迭代。
import math
f0 = int(input())
r = math.pow(2, 1/12)
for i in range(5):
f1 = f0 * (r ** i )
if i == 5:
print('{:.2f}'.format(f1))
else:
print('{:.2f}'.format(f1), end= ' ')
考虑将 for 循环替换为生成器表达式以及 str.join
,如下所示:
print(' '.join((f'{f0*r**i:.2f}' for i in range(5))))
输出:440.00 466.16 493.88 523.25 554.37
这种方法使您不必在循环的最后一个迭代器上有不同的行为,也不必在之后编辑字符串。
str.join
在可迭代对象的每个元素之间插入字符串(在本例中为 ' '
),但不在开头或结尾。