【问题标题】:How can i print multiple numbers where the next number replaces the previous number? [duplicate]如何打印多个数字,其中下一个数字替换前一个数字? [复制]
【发布时间】:2020-07-23 10:09:27
【问题描述】:

例如:

x=0
while x!=10000:
  print(x)
  x += 1

这个输出:

0
1
2
3....

但我不希望它创建新行。如果有意义的话,我希望它替换以前的数字,这样只有数字会改变而不会创建新行。

【问题讨论】:

  • print( ..., end="\r") 它将光标移动到当前行的开头而不是新行 - 然后你可以在同一个地方写。
  • 顺便说一句:参见tqdm,它使用这种方法来绘制进度条。

标签: python


【解决方案1】:

您可以使用\r 代替print(..., end='\r') 中的\n 将光标移动到行首,然后您可以在同一个位置写入。

最少的工作代码

import time

for x in range(100):
    print(x, end='\r')
    time.sleep(0.1)

我添加了time.sleep 以减慢它的速度。

如果您必须用较短的文本代替较长的文本,那么您可能需要在文本末尾添加空格。

我不确定是否所有终端/控制台都尊重\r

某些终端可能会使用其他代码来移动光标、清除清除等。这些代码被 cursesnpyscreenurwidasciimatics 等模块用于在文本模式下创建小部件。


顺便说一句:如果你想让它绘制进度条,请参阅模块tqdm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    相关资源
    最近更新 更多