我试图编写一个涉及使用硬币翻盖,头部或尾部的程序,但是它会打印出来的头部和头部。然后被“尾巴”替换为“'并继续这样做,直到它决定答案。
目前,当我运行该程序时,它会打印出' head'或者'尾巴'每次都在下一行。这在空闲和终端都会发生。
我尝试过使用回车符(\ r),退格键(\ b)和sys.stdout.write()以及.flush(),但两者都没有工作,它只是在下一行继续打印。 / p>
是否有其他方法可以删除已打印的内容,还是有其他可以使用的软件? 这是我的代码:
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)
答案 0 :(得分:4)
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")
我知道这可能不是最快的实现,但是它可行,我可以在以后输入更快的方法