1

我正在做一个任务,我必须在屏幕上循环移动一个模拟机器人 - 我已经把那部分放下了,但是,在循环之间,我还必须打印每个动作覆盖的区域百分比 - 那是我的问题。

我用谷歌搜索了一下,甚至发现有人有同样的问题,但是,我不确定我是否做得正确。

提供了此代码:

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

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

4

3 回答 3

5
for i in range(5):
    percent_complete += 20
    print '%d complete' % (percent_complete)

您缺少说明d符。

于 2012-05-31T06:38:19.190 回答
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符)。

于 2012-05-31T06:38:27.000 回答
1

添加/更正上述答案:

您的第一个示例不起作用的原因不是因为 print 不是函数,而是因为您遗漏了参数说明符。试试print('{0}% complete'.format(percent_complete))。括号内的 0 是其中的关键因素。

于 2012-05-31T06:55:28.620 回答