我是非常新的Python,我决定做一个游戏。 我想要的值是这样的输出:改变输出内真正的循环
热火:X#X将永远改变
对于我有以下代码块:
while True:
print("Heat: {}".format(Heat))
,但它是所有垃圾邮件“Heat:xHeat:xHeat:x” 当它应该只有一个Heat bar 我该怎么办?
我是非常新的Python,我决定做一个游戏。 我想要的值是这样的输出:改变输出内真正的循环
热火:X#X将永远改变
对于我有以下代码块:
while True:
print("Heat: {}".format(Heat))
,但它是所有垃圾邮件“Heat:xHeat:xHeat:x” 当它应该只有一个Heat bar 我该怎么办?
您可以使用回车键将光标发送到行首。
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()
我会检查一下,谢谢 – n0fares
在循环代码“热”,它会打印所有的时间:
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)。
我会试试这个。谢谢 – n0fares
它修复你的任务吗? – zveryansky
提供更多代码 – The6thSense
那么为什么你把这个内部无限循环? – Maroun
复位() \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