[英]Overwrite printed line in python 3.x on mac
我正在尝试编写一个涉及使用硬币翻转,正面或反面的程序,但是这样它将打印出“正面”,然后由“尾部”代替,并继续执行直到决定答案为止。
此刻,当我运行该程序时,它每次都会在下一行打印“ heads”或“ tails”。 这发生在空闲和终端上。
我试过使用回车符(\\ r),退格键(\\ b)和sys.stdout.write()和.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)
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)
编辑:这仅适用于python 3,如果要在python 2中使用它,则需要写入sys.stdout
import time
import random
import sys
offset = random.randint(0,1)
for i in xrange(0, 20+offset):
if i % 2 == 0:
sys.stdout.write("Heads")
else:
sys.stdout.write("Tails")
time.sleep(0.1)
sys.stdout.flush()
sys.stdout.write("\r")
我知道这可能不是最快的实现,但是可以,以后我可以输入更快的方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.