python – 跟踪和显示已执行代码的百分比

python – 跟踪和显示已执行代码的百分比,第1张

概述我有一个非常大的代码,需要一些时间来运行.为了确保进程没有停止在我打印的位置,以筛选已经执行的代码的百分比,这取决于for循环和整数. 要显示已经处理的for循环的百分比,我使用标志来指示已经传递了多少循环. MWE可能会让它更清晰: import timeN = 100flag_15, flag_30, flag_45, flag_60, flag_75, flag_90 = False 我有一个非常大的代码,需要一些时间来运行.为了确保进程没有停止在我打印的位置,以筛选已经执行的代码的百分比,这取决于for循环和整数.

要显示已经处理的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 – 跟踪和显示已执行代码的百分比所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1193063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存