python教程示例中的混乱

时间:2015-08-04 15:56:47

标签: python python-3.x

我在python教程中找到了以下示例,但无法获得它。

我跑的时候:

>>> for x in range(1, 11):
    print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')


 1   1  2   4  3   9  4  16  5  25  6  36  7  49  8  64  9  81 10 100

上面的输出是在一条水平线上,但是当我运行另一个代码时,我得到垂直线输出而没有任何换行符号,如下所示?

for x in range(1, 11):
    print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')
    print(repr(x*x*x).rjust(4))



     1   1    1
     2   4    8
     3   9   27
     4  16   64
     5  25  125
     6  36  216
     7  49  343
     8  64  512
     9  81  729
    10 100 1000

https://docs.python.org/3.3/tutorial/inputoutput.html#fancier-output-formatting

1 个答案:

答案 0 :(得分:1)

您可以在the documentation上找到:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

如果您没有指定end参数,则会使用'\n'这是一个新行。因此,每次拨打print(repr(x*x*x).rjust(4))时,都会创建一个新行。您第一次print来电显式使用字符串末尾的空格,而您的第二次通话不会。

如果您想将输出保持在一行,请在第二次调用end

时使用print参数
for x in range(1, 11):
    print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')
    print(repr(x*x*x).rjust(4), end=' ')