python文本进度条94页_Python学习笔记 | 实例4:文本进度条
本文為中國大學MOOC《Python語言程序設計》課程學習筆記,課程主講:嵩天老師,練習平臺:Python123,參考教材:《Python語言程序設計基礎》
文本進度條-簡單的開始
import time
scale = 10
print("----執(zhí)行開始----")
for i in range(scale+1):
a = "*" * i#'*'重復i次
b = '.' * (scale - i)#.重復(scale-i)次
c = i/scale * 100
print("{:^3.0f}%[{}->{}]".format(c,a,b))#^指居中對齊,3指輸出寬度為3;.0f指保留0位小數(shù)
time.sleep(0.1)#循環(huán)每執(zhí)行一次休眠0.1s
print("----執(zhí)行結束----")
運行結果:
文本進度條動態(tài)刷新
import time
for i in range(101):
print("\r{:3}%".format(i),end="")
time.sleep(0.1)刷新的本質(zhì)是:用后打印的字符覆蓋之前的字符
end="" 不換行
\r,能使光標退回到行首的位置
end=“Str”,print()每次輸出會增加字符串 Str
這段代碼在IDLE中運行的結果是:
并沒有展示出來刷新的效果,這是因為IDLE是開發(fā)環(huán)境,屏蔽了\r,它不起作用。
在CMD中運行這個python程序是可以的,要注意調(diào)用該文件運行的路徑和指令。
python
文本進度條完整效果
import time
scale = 50
start = time.perf_counter()
print("執(zhí)行開始".center(scale//2,'-'))
for i in range(scale+1):
a = '*'*i
b = '.'*(scale - i)
c = (i/scale)*100
dur = time.perf_counter() - start
print("\r{:3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")
time.sleep(0.1)
print("\n"+"執(zhí)行結束".center(scale//2,'-'))
執(zhí)行效果:
知識點總結time 庫的使用,使用保留字import 引入python標準庫
對程序循環(huán)運行計時的方法,在循環(huán)之前引入變量start = time.perfcounter(),所用的時間 dur = time.perfcounter - start
.format方法的使用
槽的格式化方法,{:^3.0f}與{:.2f},要知道他們的含義
print()打印時,不換行的方法是在后面加 end="",print(,end=""),如果想要讓每次打印后面有相同的內(nèi)容,可在end中寫,比如 print(,end="想你"),則會在每次打印的結尾輸出"想你"兩個字
\r 代表每次打印光標恢復至行首
\n 代表打印時光標先換行
總結
文本字符串的案例,綜合運用:字符串處理,數(shù)字處理,time庫的使用等知識點,對于這些知識的學習和理解,是很好的學習案例。
舉一反三
計算問題擴展文本進度條程序使用了perf_counter()計時
計時方法適合各類需要統(tǒng)計時間的計算問題
例如:比較不同算法時間、統(tǒng)計部分程序運行時間
進度條擴展在任何運行時間需要較長的程序中增加進度條
在任何希望提高用戶體驗的應用中增加進度條
進度條是人機交互的紐帶之一
進度條的設計,我們平時見的非常多,比如下載和上傳文件,視頻和游戲加載等。使用算法可以讓進度條的顯示進行改變,比如實際進行1%時,顯示給用戶進行到了99%,而剩下1%,實際上是用了99%的時間才進行完,用戶感覺到的就是剛開始下載好快啊,最后1%下載的超級超級慢。當然也有可能是相反的設計。
相信大家都有過類似的體驗,這很有可能不是你網(wǎng)絡的原因,也許是程序員在后面動了“手腳”。至于為什么這么做,他們是考慮到用戶的心理,看哪種顯示讓用戶覺得更好,更愿意繼續(xù)等待,就會采取哪種方式。
你覺得這種“違背了事實”的設計合理嗎?
總結
以上是生活随笔為你收集整理的python文本进度条94页_Python学习笔记 | 实例4:文本进度条的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringCloud:学习 Docke
- 下一篇: 今年开播!《三体》电视剧发布最新海报:实