我在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
答案 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=' ')