zoukankan      html  css  js  c++  java
  • 【Python】输出程序运行的百分比

    对于一些大型的Python程序。我们须要在命令行输出其百分比,显得更加友好,以免被人误会程序陷入死循环、假死的窗口。

    关键是利用到不换行的输出符 , 的输出。将直接覆盖掉此行的内容。

    比方例如以下的程序,是一个i从0自加的十万的过程,即使对于如今高性能的CPU也是须要几秒的时间的,我们要输出其运行时候的百分比,能够在引入sys这个包之后。利用到sys.stdout.write输出。避免原生态的print自带的 影响大局。

    同一时候要控制百分比的小数位为4。

    程序运行的百分比恰好为i当前的值除以值为十万的total。

    #-*-coding:utf-8-*-
    import sys;
    total=100000
    for i in range(0,total):
        percent=float(i)*100/float(total)
        sys.stdout.write("%.4f"%percent);
        sys.stdout.write("%
    ");
        sys.stdout.flush();
        
    sys.stdout.write("100%!finish!
    ");
    sys.stdout.flush();

    程序执行结果例如以下:


    可是,这里i每自增一次就要求当前的执行的百分比。把原本100000次的浮点运算徒然添加到二十万次,同一时候要刷新100000次的屏幕,很不合理,因此对于程序。能够做例如以下的改进,执行百分比仅保留2位小数,同一时候i每累积100才进行百分比输出。程序改动之后例如以下:

    #-*-coding:utf-8-*-
    import sys;
    total=100000
    for i in range(0,total):
        if i%100==0:
            percent=float(i)*100/float(total)
            sys.stdout.write("%.2f"%percent);
            sys.stdout.write("%
    ");
            sys.stdout.flush();
        
    sys.stdout.write("100%!finish!
    ");
    sys.stdout.flush();

    从求执行百分比的100000次的浮点运算改为100000次的条件运算,同一时候仅要刷新屏幕1000次,程序的执行耗时将大大降低。

    同一时候。这里值得注意的是,Eclipse中的Pydev中的控制台,对于 依旧是处理成换行符,使得输出变成例如以下的样子。这里没有办法了!


  • 相关阅读:
    一个基础的CURL类
    设计自适应网页方法
    JQ点击列表显示隐藏
    获取当前页面的完整URL
    配置时间生成下拉菜单
    Contains Duplicate II
    Rectangle Area
    面试题47:不用加减乘除做加法
    面试题48:用C++设计一个不能被继承的类
    Reverse Linked List
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7230983.html
Copyright © 2011-2022 走看看