2024-04-27 03:21:47 发布
网友
我有以下简单代码:
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%,...
我做错什么了?你知道吗
错误在这一行:
if ((i/(num_tasks-1)) % 5):
因为((i/(num_tasks-1)) % 5)不是布尔值,所以if语句的行为将不正常。Here是关于Python中不同基元类型的真值的更多信息。请尝试以下操作:
((i/(num_tasks-1)) % 5)
if
if i/(num_tasks-1) % 5 == 0:
这条线:
在(i/(num_tasks-1))不可被5整除的每个迭代中,将被解释为True,因为(i/(num_tasks-1)) % 5将等于不同于0的值。相反,您应该:
(i/(num_tasks-1))
True
(i/(num_tasks-1)) % 5
if ((i/(num_tasks-1)) % 5 == 0):
错误在这一行:
if ((i/(num_tasks-1)) % 5):
因为
((i/(num_tasks-1)) % 5)
不是布尔值,所以if
语句的行为将不正常。Here是关于Python中不同基元类型的真值的更多信息。请尝试以下操作:if i/(num_tasks-1) % 5 == 0:
这条线:
if ((i/(num_tasks-1)) % 5):
在
(i/(num_tasks-1))
不可被5整除的每个迭代中,将被解释为True
,因为(i/(num_tasks-1)) % 5
将等于不同于0的值。相反,您应该:if ((i/(num_tasks-1)) % 5 == 0):
相关问题 更多 >
编程相关推荐