Python入門習題4.文本進度條


例4.1.設置一組文本進度條,使之運行效果如下:

--------執行開始--------
% 0 [->**********]
%10 [*->*********]
%20 [**->********]
%30 [***->*******]
%40 [****->******]
%50 [*****->*****]
%60 [******->****]
%70 [*******->***]
%80 [********->**]
%90 [*********->*]
%100[**********->]
--------執行結束--------

 1 #文本進度條1.py
 2 import time
 3 print("{0:-^20}".format('執行開始'))
 4 scale = 10
 5 for i in range(scale+1):
 6     a = '*' * i
 7     b = '*' * (scale - i)
 8     c = (i/scale)*100
 9     print("%{:^3.0f}[{}->{}]".format(c,a,b))
10     time.sleep(0.5)
11 print("{0:-^20}".format('執行結束'))

在此講解time庫的使用:

獲取時間:time() 得到時間戳;  

     ctime()得到時間的字符串表達形式;

     gmtime()得到時間的程序表達形式。

時間格式化:strftime(tpl ,ts ) 其中tpl是格式化模板字符串,ts是計算機內部時間類型變量

        如>>>t = time.gmtime()

             time.strftime("%Y-%m-%d   %H:%M:%S",t)

       strptime(str,tpl)

程序計時:perf_counter() 返回精確的時間計數值。

     sleep(s)休眠時間,s為秒

例4.2在命令提示符窗口實現單行動態刷新,進度條運行效果如下

100%>>>

>>> import time
>>> for i in range(101):
...     print("\r{:2}%".format(i),end="")
...     time.sleep(0.05)
...

例4.3實現帶刷新的文本進度條

 1 #TextProBarV3.py
 2 import time
 3 scale = 50
 4 print("執行開始".center(scale//2,"-"))
 5 start = time.perf_counter()
 6 for i in range(scale + 1):
 7     a = "*" * i
 8     b = '.' * (scale - i)
 9     c = (i/scale)*100
10     dur = time.perf_counter() - start
11     print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")
12     time.sleep(0.1)
13 print("\n"+"執行結束".center(scale//2,"-"))
-----------執行開始----------
100%[**************************************************->]5.03s
-----------執行結束----------




博客參考《Python程序設計基礎》高等教育出版社(第2版) 嵩天,禮欣,黃天羽著 

推薦與上述教材配套的北京理工大學 嵩天,禮欣,黃天羽老師的MOOC


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM