我正在尝试创建一个 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>
如何在不向最后一项添加额外空格的情况下在值之间添加空格?
最佳答案
我可以提出 3 个建议:
使用
end=""
并手动插入空格创建一个字符串并在循环后打印:
s = "" for n in range(n, n+7): s+= str(n)+ " " s = s[:-1] #remove the ending whitespace print(s)
我推荐:使用 sys.stdout.write 代替打印: print 仅在打印换行符后显示消息。所以如果循环中有一个很长的计算并且有
end=""
你只会看到所有计算结束时的resulr。改用 sys.stdoutfor n in range(n, n+7): if n < n+7: sys.stdout.write(str(n)+" ") else: sys.stdout.write(str(n)) sys.stdour.flush() #flush output to console
编辑:我进化了一点,这就是我现在使用的: 4. message = "".join(range(n, n+7)) 这会在列表的所有元素之间放置空格。您可以选择任何分隔字符而不是空格(或多个字符)。
关于python - 使用 .format : Python 3 在循环输出之间添加一个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43311236/