【发布时间】:2017-09-04 19:01:51
【问题描述】:
我正在尝试创建一个 for 循环,其中用户输入一个数字 n,输出提供从 n 到 n+6 的值范围。这需要全部打印在一行中,并与值输出之间的空格右对齐,但输出的末尾或开头没有空格。
到目前为止,这是我想出的:
n=eval(input("Enter the start number: "))
for n in range(n,n+7):
print("{0:>2}".format(n),end=" ")
但是,这会导致以下输出:
-2 -1 0 1 2 3 4 <EOL>
当我想要的输出看起来相似但没有末尾的空格时,如下所示:
-2 -1 0 1 2 3 4<EOL>
如何在值之间添加空格而不在最后一个术语中添加额外的空格?
【问题讨论】:
-
末尾没有空格。所以只需使用
end=""而不是end= " "也不要直接在用户输入上使用eval。而是使用int。 -
我试过了,但是使用 end="" 会导致负值之间没有空格,如下所示:-2-1 0 1 2 3 4
-
是的,这是因为
for循环。你可以join你的范围与空间。" ".join(map(str, range(n,n+7)))。使用map和str会将整数转换为字符串,以便join的有效类型。或' '.join([{0:>2}".format(i) for i in range(n, n+ 7)]) -
或者你可以使用
print的sep参数:print(*map("{0:>2}".format, range(n, n + 7)), sep=' ')。
标签: python python-3.x for-loop format