使用.format:Python 3在循环输出之间添加一个空格

时间:2017-04-09 19:56:05

标签: python python-3.x for-loop format

我正在尝试创建一个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>

如何在值之间添加空格而不为最终术语添加额外空格?

1 个答案:

答案 0 :(得分:0)

我可以提出3项建议:

  1. 使用end=""并手动插入空格

  2. 创建一个字符串并在循环后打印:

    s = ""
    for n in range(n, n+7):
        s+= str(n)+ " "
    s = s[:-1] #remove the ending whitespace
    print(s)
    
  3. 我建议:使用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