仅一行打印

时间:2019-08-03 18:02:36

标签: python printing

我有一个程序,只需要将数据打印到一行上即可。

我该怎么做。

for i in range(10):
    print(i)

是否可以将所有这些打印在一行上,以便它打印0,擦除该行,打印2,擦除等。?

4 个答案:

答案 0 :(得分:4)

使用print(i,end="\r")返回到行的开头并覆盖。

答案 1 :(得分:3)

for i in range(10):
    print(i,end=" ")

这是在一行中打印的最简单方法。

答案 2 :(得分:1)

对于此特定用例,您可以执行以下操作:

print(*range(10))

要更新该行上的每个字符,您将需要使用'\r'或返回字符,该字符将光标的位置返回到该行的开头。但是,您需要确保您在计算要打印的字符串的长度,否则,您将仅覆盖部分字符串。完整的解决方案将是:

import time
maxlen = 0
for i in range(12,-1,-1):
  if len(str(i))>maxlen:
    maxlen = len(str(i))
  print(f'\r{str(i): <{maxlen}}',end = '')
  time.sleep(2)
print('')

time部分已添加,以便您可以查看更改。 maxlen计算将要打印的最大长度字符串,并相应地格式化该字符串。注意:我使用过f'strings,因此仅适用于Python 3.x

答案 3 :(得分:1)

在python 2.x中:

from __future__ import print_function
for i in range(10):
    print (i, end="")

在python 3.x中

for i in range(10):
    print (i, end="")