小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

用 Python 給程序加個(gè)進(jìn)度條,讓你的程序看起來更炫酷

 O聽_海_軒O 2020-08-18

你好,我是天作。

最近,我真的好喪。一些有截止日期的事情,都是拖到Deadline的前一天才草草了事;對(duì)于那些沒有截至日期的事情,更是僅僅存在腦子里,徒增了焦慮,卻遲遲沒有動(dòng)手。

不幸中的萬幸,我漸漸地培養(yǎng)了讀書的習(xí)慣。

為了克服自己拖延的癥狀,我讀了一些習(xí)慣養(yǎng)成的書籍,而這些書基本上都提到了這樣一個(gè)思路。

這個(gè)思路就是:“拆”。

把大的事情“拆”成一件件小的事情,把困難的事情“拆”成一件件容易的事情。

比如,我想去跑步。那我就可以把跑步“拆”分成以下幾個(gè)步驟:

1)換上準(zhǔn)備運(yùn)動(dòng)的裝備(運(yùn)動(dòng)褲、運(yùn)動(dòng)鞋)
2)走到運(yùn)動(dòng)的地方(告訴自己就是出去散散步)
3)先跑5分鐘(告訴自己就跑5分鐘)
4)慢慢的繼續(xù)下去

在沒有“拆”之前,事情只有兩個(gè)狀態(tài)“完成”和“未完成”,這樣只有在進(jìn)度完成100%的時(shí)候才可以看到結(jié)果;

事情被“拆”分之后,就轉(zhuǎn)化為一件件可以做到的具體事情;

我們每完成一小部分,就會(huì)有一種掌控全局的感覺,也更容易促進(jìn)整個(gè)進(jìn)度條的完成。

運(yùn)行的程序也是如此,沒有可視化進(jìn)度,我們只能苦苦等待最終的完成,這樣確實(shí)容易人焦躁不安。

有了進(jìn)度條,我們就可以時(shí)時(shí)掌握程序運(yùn)行的進(jìn)度,可以讓人心里踏實(shí)。

那么,怎么用 Python 給程序加個(gè)進(jìn)度條呢?

可以采用以下五種方式:

1、使用time模塊,結(jié)合python的基礎(chǔ)語法(循環(huán)、條件判斷、字符串格式化)設(shè)計(jì)進(jìn)度條

import time

for i in range(01012):
  time.sleep(0.1)
  num = i // 2
  if i == 100:
    # 字符串格式化
    # %3s——右對(duì)齊,占位符3位  %有特殊含義:想要打印%,使用%%表示
    # %-50s——左對(duì)齊,占位符50位
    # \r 回車  \n 換行
    process = '\r[%3s%%]: |%-50s|\n' % (i, '|' * num)
  else:
    process = '\r[%3s%%]: |%-50s|' % (i, '|' * num)
  print(process, end='', flush=True)

運(yùn)行效果:


2、使用time模塊和sys模塊

sys.stdout.flush():立即刷新輸出的內(nèi)容 

sys.stdout.write():打印不換行

print()方法:打印換行


import sys, time

print('正在下載......')
for i in range(11):
    if i != 10:
        sys.stdout.write('==')
    else:
        sys.stdout.write('== ' + str(i * 10) + '%/100%')
    sys.stdout.flush()
    time.sleep(0.2)
print('\n' + '下載完成')

運(yùn)行效果:


3、tqdm擴(kuò)展庫

tqdm第三方模塊(可使用pip進(jìn)行安裝)可以實(shí)時(shí)輸出處理進(jìn)度,占用的CPU資源非常少

支持windows、Linux、mac等系統(tǒng),支持循環(huán)處理、多進(jìn)程遞歸處理;

還可以結(jié)合linux的命令來查看處理情況,等進(jìn)度展示。


from time import sleep
from tqdm import tqdm

for i in tqdm(range(20)):
    sleep(0.5)

運(yùn)行效果:


4、Progressbar 擴(kuò)展庫 

Python Progressbar模塊(pip安裝)提供基于文本的可視化進(jìn)度條,通常用在顯示下載進(jìn)度、顯示任務(wù)的執(zhí)行進(jìn)度等等。

import time
from progressbar import *

progress = ProgressBar()
for i in progress(range(1000)):
    time.sleep(0.01)

運(yùn)行效果:


5、alive-progress 擴(kuò)展庫

alive-progress擴(kuò)展庫(pip安裝)是一種具有動(dòng)態(tài)效果的智能進(jìn)度條

from alive_progress import alive_bar
import time
items = range(10)         # retrieve your set of items
with alive_bar(len(items)) as bar:  # declare your expected total
  for item in items:        # iterate as usual
    # process each item
    bar()            # call after consuming one item
    time.sleep(1)

運(yùn)行效果:


總結(jié)

程序中的進(jìn)度條可以讓程序更炫酷,可以顯示下載進(jìn)度、顯示任務(wù)的執(zhí)行進(jìn)度;

生活中的進(jìn)度條可以讓我們對(duì)整個(gè)目標(biāo)的重要步驟有清晰地界定,減少對(duì)未知的恐懼。一切都會(huì)好起來的吧。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多