我有一个程序,只需要将数据打印到一行上即可。
我该怎么做。
for i in range(10):
print(i)
是否可以将所有这些打印在一行上,以便它打印0,擦除该行,打印2,擦除等。?
答案 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="")