我正在进行一项任务,我必须将一个模拟机器人在一个循环中移动到屏幕上 - 我已经将该部分放下,但是,在循环之间,我还必须打印每个部分覆盖的区域的百分比运动 - 这是我的问题。
我google了一下,甚至发现有同样问题的人,但是,我不确定我是否正确地做了。
提供此代码:
percent_complete = 0
for i in range(5):
percent_complete += 20
print('{}% complete'.format(percent_complete))
然而,在发生错误后,进一步的谷歌搜索显示只能使用某些版本
所以我使用了这段代码:
percent_complete = 0
for i in range(5):
percent_complete += 20
print '% complete' % (percent_complete)
而且,至少,它现在执行代码,但是,打印时的输出如下:
Here we go!
hello
omplete
hello
(omplete
hello
<omplete
hello
Pomplete
hello
domplete
这是什么原因?我假设因为其中一个代码必须编辑,其他部分也可以编辑,但我不确定需要做什么。
答案 0 :(得分:5)
for i in range(5):
percent_complete += 20
print '%d complete' % (percent_complete)
您错过了d
说明符。
答案 1 :(得分:2)
第一个版本仅适用于Python 3,因为它使用print
作为函数。您可能正在寻找以下内容:
percent_complete = 0
for i in xrange(5):
percent_complete += 20
print '{0} complete'.format(percent_complete)
您的其他代码不会执行您打算执行的操作,因为它现在将数字显示为字符串。你想要的是首先将数字正确转换为字符串然后显示在字符串中。函数format
为您做到了这一点。
您还可以使用Ansari的方法明确指定percent_complete
是一个数字(使用d
说明符)。
答案 2 :(得分:1)
添加/更正以上答案:
你的第一个例子不起作用的原因不是因为print不是一个函数,而是因为你遗漏了参数说明符。试试print('{0}% complete'.format(percent_complete))
。括号内的0是那里的关键因素。