在m上覆盖python3.x中的打印行

2024-04-27 05:19:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个程序,涉及到硬币投掷,正面或反面,但这样它将打印'正面',然后被'尾巴'取代,并继续这样做,直到它决定了答案。在

现在,当我运行这个程序时,它每次都会在下一行打印“头”或“尾”。这在空闲和终端上都会发生。在

我尝试过使用回车符(\r)、退格符(\b)和系统标准输出写入()和.flush()但都不起作用,它只在下一行继续打印。在

有没有其他方法可以清除打印出来的内容,或者有其他软件可以使用? 这是我的代码:

import time
import random

offset = random.randint(0,1)

for i in range (0, 20+offset):
    if i % 2 == 0:
        print("Heads")
    else:
        print("Tails")
    print("\r")
    time.sleep(0.1)

Tags: 答案import程序终端标准time系统硬币
1条回答
网友
1楼 · 发布于 2024-04-27 05:19:09

print在末尾写入一个\n字符,因此如果希望保持在同一行中,则需要修改该字符。在

import time
import random

offset = random.randint(0,1)

for i in range (0, 20+offset):
    if i % 2 == 0:
        print("Heads", end='')
    else:
        print("Tails", end='')
    print("\r", end='')
    time.sleep(0.1)

编辑:这只适用于Python3,如果您想在Python2中使用它,则需要写入系统标准输出在

^{pr2}$

我知道这可能不是最快的实现,但它是有效的,我可以稍后键入一个更快的方法

相关问题 更多 >