如何计算'for'循环内的内容?

时间:2012-05-31 06:35:48

标签: python

我正在进行一项任务,我必须将一个模拟机器人在一个循环中移动到屏幕上 - 我已经将该部分放下,但是,在循环之间,我还必须打印每个部分覆盖的区域的百分比运动 - 这是我的问题。

我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

这是什么原因?我假设因为其中一个代码必须编辑,其他部分也可以编辑,但我不确定需要做什么。

3 个答案:

答案 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是那里的关键因素。