使用python制作游戲下載進(jìn)度條的代碼(程序說明見注釋)

import time
# time模塊中包含了許多與時(shí)間相關(guān)的模塊,其中通過time()函數(shù)可以獲取當(dāng)前的時(shí)間。
count = 100
print("開始下載".center(100, '-'))
start = time.perf_counter()
# 通過time()函數(shù)可以獲取當(dāng)前的時(shí)間并付給變量start
for i in range(count + 1):
a = "■" * i
# 用■的個(gè)數(shù)來具體化已經(jīng)下載完的進(jìn)度?!鲈谳斎敕ɡ锏奶厥夥?hào)里。
b = " " * (count - i)
# 用一個(gè)空格的個(gè)數(shù)來具體化未完成下載的進(jìn)度
c = (i / count) * 100
#c的值表示10%,50%中的10和50.
res = time.perf_counter() - start
# 執(zhí)行完一次for循環(huán)所需要的時(shí)間。但time.time(),time.perf_counter()記錄時(shí)間的精確不高,因此要借助time.sleep(0.1)來符合它們的精確度,好讓它們記錄。
print(f"\r{c:.2f}%[{a}]{res:.2f}s", end="")
#\r 表示將光標(biāo)的位置回退到本行的開頭位置。即光標(biāo)永遠(yuǎn)處于本行開頭。
# end = '\n'是把光標(biāo)換行。end = ""是不換行。不加\r則在一行上輸出所有數(shù)據(jù)。加\r會(huì)讓數(shù)據(jù)迭代更新(類似變量賦值,可以對(duì)同一個(gè)賦值,但以最終的數(shù)據(jù),最新的數(shù)據(jù)為準(zhǔn))
time.sleep(0.1)
# time.sleep(秒數(shù)),讓程序休眠/延遲。其中“秒數(shù)”以秒為單位,可以是小數(shù),0.1秒則代表休眠100毫秒。
# 不加這條命令,因?yàn)閏pu處理數(shù)據(jù)的速度極快(速度和時(shí)間成正比,速率),會(huì)讓time.time()記錄的時(shí)間精確度不高(**導(dǎo)致不能記錄下cpu的運(yùn)行時(shí)間**),休眠即可解決這個(gè)問題。
print("下載完成".center(100, '-'))
ps:python實(shí)現(xiàn)顯示安裝進(jìn)度條
一直很好奇那種安裝進(jìn)度條,或者啟動(dòng)程序時(shí)候顯示的進(jìn)度條是怎么實(shí)現(xiàn)的,學(xué)習(xí)了python之后,sys模塊中有個(gè)方法可以實(shí)現(xiàn),代碼如下:
import sys,time
for i in range(50):#循環(huán)50次
sys.stdout.write('#')#向終端輸出#
#在這中間就可以做你想要的處理了,處理完之后結(jié)束循環(huán)即可
sys.stdout.flush()#立即輸出,如果不加這個(gè)的話,它會(huì)等緩沖區(qū)滿了之后才顯示
time.sleep(1)#sleep一秒再輸出,輸出太快的話就看不到效果了
總結(jié)
以上所述是小編給大家介紹的使用python制作游戲下載進(jìn)度條,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Python如何使用EasyOCR工具識(shí)別圖像文本
EasyOCR?是?PyTorch?實(shí)現(xiàn)的一個(gè)光學(xué)字符識(shí)別?(OCR)?工具,這篇文章主要介紹了Python如何使用EasyOCR工具識(shí)別圖像文本,需要的朋友可以參考下2023-04-04
python網(wǎng)絡(luò)爬蟲 CrawlSpider使用詳解
這篇文章主要介紹了python網(wǎng)絡(luò)爬蟲 CrawlSpider使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
python virtualenv虛擬環(huán)境配置與使用教程詳解
這篇文章主要介紹了python virtualenv虛擬環(huán)境配置與使用教程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Django權(quán)限系統(tǒng)auth模塊用法解讀
這篇文章主要介紹了Django權(quán)限系統(tǒng)auth模塊用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
python實(shí)現(xiàn)微信小程序的多種支付方式
這篇文章主要為大家介紹了python實(shí)現(xiàn)微信小程序的多種支付方式的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
DRF?QuerySet?Instance數(shù)據(jù)庫操作功能概述
這篇文章主要為大家介紹了DRF?QuerySet?Instance數(shù)據(jù)庫處理的功能概述,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
python中的 Matplotlib 繪制多子圖時(shí)的重疊問題及解決方案
當(dāng)使用 Matplotlib 繪制多個(gè)子圖(subplots)時(shí),如果標(biāo)簽或標(biāo)題文字交叉或重疊,遇到這樣的問題如何處理呢,下面小編給大家介紹了python中的 Matplotlib 繪制多子圖時(shí)的重疊問題及解決方案,需要的朋友可以參考下2024-06-06

