要显示已经处理的for循环的百分比,我使用标志来指示已经传递了多少循环.
MWE可能会让它更清晰:
import timeN = 100flag_15,flag_30,flag_45,flag_60,flag_75,flag_90 = False,False,\False,Falsefor i in range(N): # Large block of code. time.sleep(0.1) if i + 1 >= 0.15 * N and flag_15 is False: print '15%' flag_15 = True elif i + 1 >= 0.3 * N and flag_30 is False: print '30%' flag_30 = True elif i + 1 >= 0.45 * N and flag_45 is False: print '45%' flag_45 = True elif i + 1 >= 0.6 * N and flag_60 is False: print '60%' flag_60 = True elif i + 1 >= 0.75 * N and flag_75 is False: print '75%' flag_75 = True elif i + 1 >= 0.9 * N and flag_90 is False: print '90%' flag_90 = True elif i + 1 == N: print '100%'
这有效,但相当冗长,真的很难看.我想知道是否有更好/更漂亮的方式来做到这一点.
解决方法 (发布第二个答案,因为此解决方案使用完全不同的技术)您可以创建里程碑值列表,并在完成百分比达到最低值时打印消息.
milestones = [15,30,45,60,75,90,100]for i in range(N): #do work here percentage_complete = (100.0 * (i+1) / N) while len(milestones) > 0 and percentage_complete >= milestones[0]: print "{}% complete".format(milestones[0]) #remove that milestone from the List milestones = milestones[1:]
结果:
15% complete30% complete45% complete60% complete75% complete90% complete100% complete
与我之前发布的“步幅”方法不同,在这里您可以精确控制打印的百分比.它们不需要均匀分布,它们不需要被N整除,它们甚至不需要是整数!如果你愿意,你可以做里程碑= [math.pi,4.8,15.16,23.42,99].
总结以上是内存溢出为你收集整理的python – 跟踪和显示已执行代码的百分比全部内容,希望文章能够帮你解决python – 跟踪和显示已执行代码的百分比所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)