2015-07-11 38 views
1

我是非常新的Python,我决定做一个游戏。 我想要的值是这样的输出:改变输出内真正的循环

热火:X#X将永远改变

对于我有以下代码块:

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

,但它是所有垃圾邮件“Heat:xHeat:xHeat:x” 当它应该只有一个Heat bar 我该怎么办?

+1

提供更多代码 – The6thSense

+4

那么为什么你把这个内部无限循环? – Maroun

+1

复位() \t打印( “欢迎来到RM 1”) \t打印( “请选择一个新的困难”) \t新=输入( “1和3之间输入一个值:”) \t setDifficulty(新) \t #START \t清晰() \t H = “热:{}”。格式(热) \t #LOOP \t而真: \t \t time.sleep(getDifficulty()/ 0.5) \t \t打印(h) – n0fares

回答

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() 
+0

我会检查一下,谢谢 – n0fares

0

在循环代码“热”,它会打印所有的时间:

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

在该代码中“热”圈外的,它会被打印一次:

Heat = 0 
print ('Heat:') 
while True: 
    Heat +=1 
    print ('{heat}'.format(heat=Heat)) 
如果你想要更多的换行符使用

“\ n”字符(严格依赖于OS)。

+0

我会试试这个。谢谢 – n0fares

+0

它修复你的任务吗? – zveryansky