亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用python制作進(jìn)度條的方法小結(jié)

 更新時(shí)間:2024年04月12日 10:19:48   作者:碼銀  
偶然間刷到一個(gè)視頻,說(shuō)到:當(dāng)程序正在運(yùn)算時(shí),會(huì)有一個(gè)較長(zhǎng)時(shí)間的空白期,誰(shuí)也不知道程序運(yùn)行的進(jìn)度如何,不如給他加個(gè)進(jìn)度條,于是我今個(gè)就搜尋一下,Python版的進(jìn)度條都可以怎么寫,感興趣的小伙伴跟著小編一起來(lái)看看吧

正文

1、數(shù)字進(jìn)度條

進(jìn)度條的格式是"{當(dāng)前循環(huán)次數(shù)} / {總循環(huán)次數(shù)}"。其中,循環(huán)次數(shù)從1開始,到500,000結(jié)束。

通過(guò)使用end='\r'參數(shù),print語(yǔ)句的輸出不會(huì)換行,而是每次循環(huán)都會(huì)覆蓋上一次的輸出。這樣就實(shí)現(xiàn)了實(shí)時(shí)更新進(jìn)度條的效果。

for i in range(500000):
 
    print(f'{i+1} / {500000}',end='\r')

2、使用百分號(hào)表示進(jìn)度

for i in range(500):
    for j in range(5000):
        print(f'{((i+1)*100 // 500)}%',end='\r')

3、 使用字符完成簡(jiǎn)易進(jìn)度條

該代碼將打印出一行字符,并且字符的總長(zhǎng)度為50個(gè)字符。 其中,字符的內(nèi)容為"@"的重復(fù),重復(fù)的次數(shù)為50次。 外面的"| |"是用來(lái)給字符串添加邊框的,以增加可讀性。

 
for i in range(500):
    for j in range(500):
        print("進(jìn)度條:"f'|{"@"*((i+1)*50 // 500):50}|',end='\r')
 
print("\n程序完成")

3和4是可以結(jié)合起來(lái)的 :

for i in range(500):
    for j in range(500):
        print("進(jìn)度條:"f'|{"@"*((i+1)*50 // 500):50}|',f'{((i+1)*100 // 500)}%',end='\r')
 
print("\n程序完成")

輸出結(jié)果:

進(jìn)度條:|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@| 100%

4、使用tqdm庫(kù)完成進(jìn)度條

官網(wǎng):tqdm · PyPI

 安裝這個(gè)庫(kù):pip install tqdm。

示例代碼:

from tqdm import tqdm
import time
 
for i in tqdm(range(500)):
        time.sleep(0.1)

5、使用alive-progress庫(kù)完成進(jìn)度條

官網(wǎng)鏈接:alive-progress · PyPI

安裝庫(kù):pip install alive-progress 

示例代碼:

from alive_progress import alive_bar
import time
 
with alive_bar(100, force_tty=True) as bar:
        for i in range(100):
                time.sleep(0.1)
                bar()

6、使用rich庫(kù)完成進(jìn)度條

安裝庫(kù): pip install rich

import time
from rich.progress import track
 
for i in track(range(100),description="進(jìn)度:"):
    time.sleep(0.1)

這個(gè)截圖沒(méi)有在Pycharm編輯器里截圖的原因是:

顯示不全哈哈。

7、讓文心一言給我畫一個(gè)

import time  
import sys  
  
def print_progress_bar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█', print_end="\r"):  
    """  
    調(diào)用該函數(shù)時(shí)傳入:  
        iteration   - 當(dāng)前的進(jìn)度(Int)  
        total       - 總進(jìn)度(Int)  
        prefix      - 前綴字符串(Str)  
        suffix      - 后綴字符串(Str)  
        decimals    - 正數(shù)的小數(shù)位數(shù)(Int)  
        length      - 進(jìn)度條長(zhǎng)度(Int)  
        fill        - 進(jìn)度條填充字符(Str)  
        print_end   - 結(jié)束字符(Str),默認(rèn)是"\r",表示進(jìn)度條更新在同一行  
    """  
    percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))  
    filled_length = int(length * iteration // total)  
    bar = fill * filled_length + '-' * (length - filled_length)  
    print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=print_end)  
    # 當(dāng)完成進(jìn)度時(shí),打印一個(gè)換行符  
    if iteration == total:   
        print()  
  
# 使用示例  
for i in range(1, 101):  
    print_progress_bar(i, 100, prefix='進(jìn)度:', suffix='完成', length=50)  
    time.sleep(0.01)  # 休眠0.01秒,模擬進(jìn)度更新

備注信息

Rich 是一個(gè) Python 庫(kù),主要用于在終端中提供富文本和精美格式。它通過(guò) API 允許用戶輕松地為終端輸出添加顏色和樣式,支持繪制漂亮的表格、進(jìn)度條、markdown 格式輸出、語(yǔ)法高亮、源代碼回溯等多種功能。Rich 庫(kù)支持在 Linux、OSX 和 Windows 上運(yùn)行,其中在新的 Windows 終端上可以支持真彩色和表情符號(hào),而經(jīng)典終端的色彩限制為8種顏色。此外,Rich 還可以與 Jupyter 筆記本一起使用,無(wú)需其他配置。

tqdm源自阿拉伯語(yǔ)塔卡杜姆(?????)意思是“進(jìn)步”,在西班牙語(yǔ)中是“我非常愛(ài)你”的縮寫(特奎羅·德馬西亞多)。立即讓你的循環(huán)顯示一個(gè)智能的進(jìn)度條。

alive-progress的一些亮點(diǎn):

  • 一個(gè)令人著迷的實(shí)時(shí)微調(diào)器,清楚地顯示您的冗長(zhǎng)過(guò)程沒(méi)有崩潰,您的 SSH 連接沒(méi)有凍結(jié),視覺(jué)反饋會(huì)對(duì)您的處理速度做出反應(yīng)。
  • 一個(gè)高效的多線程欄,以實(shí)際處理速度的一小部分進(jìn)行自我更新,以保持較低的 CPU 使用率并避免終端垃圾郵件(每秒 1,000,000 次迭代相當(dāng)于每秒大約 60 次更新,您也可以根據(jù)自己的喜好進(jìn)行校準(zhǔn))。
  • ETA(預(yù)計(jì)到達(dá)時(shí)間)功能,具有智能指數(shù)平滑算法,可顯示完成時(shí)間,使您能夠更有效地計(jì)劃時(shí)間并管理工作負(fù)載。
  • 自動(dòng)打印記錄掛鉤,提供無(wú)縫集成和輕松跟蹤,甚至在它們發(fā)生時(shí)用當(dāng)前的條形位置來(lái)豐富它們。
  • 當(dāng)處理完成時(shí),它會(huì)打印出一個(gè)不錯(cuò)的收據(jù),包括經(jīng)過(guò)的時(shí)間和觀察到的吞吐量。
  • 它檢測(cè)溢和溢出,使您能夠跟蹤命中、未命中或任何所需的計(jì)數(shù),而不一定是實(shí)際迭代。
  • 你可以暫停它!沒(méi)錯(cuò),你先在這里聽到了!任何地方都沒(méi)有其他進(jìn)度條具有此功能!您可以在任何處理過(guò)程中返回 Python 提示符,調(diào)整一些項(xiàng)目,然后回到該正在運(yùn)行的進(jìn)程,就好像它從未停止過(guò)一樣!所有小部件都保持原樣,經(jīng)過(guò)的時(shí)間很好地忽略了暫停的時(shí)間!alive_bar
  • 它是高度可定制的,有各種微調(diào)器和酒吧樣式,以及幾個(gè)現(xiàn)成的工廠,可以輕松生成你的!您甚至可以使用超級(jí)強(qiáng)大且酷炫的工具來(lái)幫助您設(shè)計(jì)自己的動(dòng)畫!您可以在屏幕上看到所有生成的幀和循環(huán),具有多個(gè)詳細(xì)級(jí)別,甚至包括生動(dòng)的再現(xiàn)!無(wú)限的創(chuàng)造力觸手可及

以上就是使用python制作進(jìn)度條的方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于python制作進(jìn)度條的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論