我正在尝试创建一个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>
如何在值之间添加空格而不为最终术语添加额外空格?
答案 0 :(得分:0)
我可以提出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:
print仅在打印换行符后显示消息。因此,如果循环中存在长计算且存在end=" "
,则只会在所有计算结束时看到结果。请改用sys.stdout
for 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