我正在尝试在Python中制作类似于this的游戏(在Windows上为3.3.2)。我认为大部分编程都是相当基础的,所以对我来说这对初学者来说很容易。我无法理解的是如何让一行代码在保持同一位置的同时不断被改变(我试图描述你拥有的糖果数量[如果你看到这条线仍然在同一个地方物理str变化])。我知道你必须做类似的事情:
candiesNbrDisplay = 'You have ' + str(candiesNbrOwned) + ' candies!'
candiesNbrOwned = candiesNbrOwned + 1
time.sleep( 1)
但是如何在没有this的情况下更改数字!
答案 0 :(得分:0)
这适用于Unix(Mac OS X 10.8.5,Python 2.7.2):
import time
import sys
for i in xrange(1, 10):
print "\rThe number of candies is %d and the pile is growing" % i,
sys.stdout.flush()
time.sleep(1)
print ""
我不知道它是否适用于Windows或Python 3。
答案 1 :(得分:0)
Jonathan建议在每行末尾使用CR。您可以通过将额外参数传递给print
:
candies = 0
while True:
print('You have', candies, 'candies!', end='\r')
time.sleep(1)
candies += 1
通常,print
使用NL(\n
)字符,这意味着“跳到下一行”。
但是在这里,我们告诉它使用CR(\r
)代替,这意味着“回到当前行的开头”。这就是我们想要的。
不幸的是,这种技术仅适用于命令行,而不适用于IDLE。因此,您必须直接运行脚本(双击其图标)才能生效。