进度条,步数为5%

时间:2016-11-21 15:14:35

标签: python if-statement progress

我有以下简单的代码:

import sys
num_tasks = 1000000
for i in range(num_tasks):
    if ((i/(num_tasks-1)) % 5):
        sys.stderr.write('\rdone {0:.0%}'.format(i/(num_tasks-1)))

我的问题是我只想显示5%的步骤,如:

done 5%, done 10%, done 15%,...

我做错了什么?

2 个答案:

答案 0 :(得分:0)

这一行:

if ((i/(num_tasks-1)) % 5):

True 可被5整除的每次迭代中都会被解释为(i/(num_tasks-1)),因为(i/(num_tasks-1)) % 5将等于不同于0的值。你应该这样做:

if ((i/(num_tasks-1)) % 5 == 0):

答案 1 :(得分:0)

错误在这一行:

if ((i/(num_tasks-1)) % 5):

由于((i/(num_tasks-1)) % 5)不是布尔值,因此if语句将无法正常运行。 Here是关于Python中不同基元类型的真值的更多信息。试试这个:

if i/(num_tasks-1) % 5 == 0: