在一段时间内改变输出True循环

时间:2015-07-11 11:11:25

标签: python string while-loop

我是Python的新手,我决定制作游戏。 我希望像这样输出一个值:

热火:x #x总是会改变

为此,我有以下代码块:

while True:
   print("Heat: {}".format(Heat))

但它只是垃圾邮件“Heat:xHeat:xHeat:x” 什么时候应该只有一个热棒 我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以使用回车将光标发送到行的开头。

import sys

while True:
    sys.stdout.write("\rHeat: {}".format(Heat))
    sys.stdout.flush()

但这种方法听起来并不像你能将它扩展到任何类型的游戏中。

您应该查找python curses库以完全控制控制台输出。

此外,如果输出中的位数发生变化,那么您可能需要右对齐输出,以免出现任何遗留问题。此代码演示了如果您从2位数字转到1位数字会发生什么:

import sys
import time

for heat in reversed(range(5, 12)):
    time.sleep(0.5)

    sys.stdout.write("\rHeat: {:>5}".format(heat))
    sys.stdout.flush()

答案 1 :(得分:0)

在那段代码中' Heat'在循环中,它将一直打印:

Heat = 0
while True:
    Heat +=1
    print ('Heat: {heat}'.format(heat=Heat))

在那段代码中' Heat'离开循环,它将被打印一次:

Heat = 0
print ('Heat:')
while True:
    Heat +=1
    print ('{heat}'.format(heat=Heat))

如果您想要更多换行符,请使用' \ n' char(严格依赖操作系统)。