Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python 3中替换打印行_Python - Fatal编程技术网

如何在Python 3中替换打印行

如何在Python 3中替换打印行,python,Python,我想做一种秒表,只是想学习一些不同的东西 问题是,我不知道如何使它这样,当你打印时间是,它只是取代你目前打印的时间 例如,如果时间是: H M S: 01 我想把它展示出来 H M S: 02 不必打印新的行,所以可以说它看起来只是在计数。我让它通过打印新行的方式来实现这一点,但它仍然显示出一种运动,表明有新行正在被打印 这是我现在的代码,请随意运行,您可以理解我的意思: 任何想法如果直接应用于这个问题,都会得到更好的理解:)有太多的()可以做到这一点。将其与[\r][2]结合使用,在写入每行

我想做一种秒表,只是想学习一些不同的东西

问题是,我不知道如何使它这样,当你打印时间是,它只是取代你目前打印的时间

例如,如果时间是:

H M S: 01

我想把它展示出来

H M S: 02

不必打印新的行,所以可以说它看起来只是在计数。我让它通过打印新行的方式来实现这一点,但它仍然显示出一种运动,表明有新行正在被打印

这是我现在的代码,请随意运行,您可以理解我的意思:

任何想法如果直接应用于这个问题,都会得到更好的理解:)

有太多的()可以做到这一点。将其与
[\r][2]
结合使用,在写入每行之前将光标移动到行首:

import time
for x in range(10):
    print('\r H M S 0 0 ' + str(x), end='')
    time.sleep(1)


提示您,您需要使用sys.stdout.write
\r

import sys, time
>>> for x in range(10):
...     sys.stdout.write('%d\r' % x)
...     sys.stdout.flush()
...     time.sleep(1)
... 

使用end参数指定“\r”作为行的结尾

for x in range(10):
    print('\r H M S 0 0 ' + str(x), end="\r")
    time.sleep(1)

我想这就是
\r
所使用的,但从我所能告诉它的内容来看,这行只是添加到它上面,我可能会弄错,因为这行似乎实际上替换了最后一行刚刚添加到它上面的打印行?只要在你的行前面加上“\r”就可以重置光标。我将更新我的答案来说明这一点。我尝试运行该代码,但它似乎再次打印在同一行上,但没有删除已打印的内容,我可能只是很愚蠢,所以你可以以某种方式将其放入示例中吗?它为我覆盖了当前行。我将用我用来测试的确切代码更新代码示例。如果我运行该代码,我得到的输出是:H m S 0 0 H m S 0 1 H m S 0 2 H m S 0 0 3 H m S 0 4 H m S 0 0 5 H m S 0 6 H m S 0 0 7 H m S 0 8 H m S 0 9,因为它一次只能显示一个东西,如数字时钟
for x in range(10):
    print('\r H M S 0 0 ' + str(x), end="\r")
    time.sleep(1)