【Python】IDLE中文本进度条的单行动态刷新无法实现分析
文本進(jìn)度條需求分析
采用字符串方式打印可以動(dòng)態(tài)變化的文本進(jìn)度條
進(jìn)度條需要能在一行中逐漸變化
如何獲得文本進(jìn)度條的變化時(shí)間呢?我們采用sleep()模擬一個(gè)持續(xù)的進(jìn)度
代碼分析及結(jié)果展示:
引入time庫,使用time庫的sleep函數(shù)來生成一個(gè)持續(xù)不斷的時(shí)間,首先我們打印一行print執(zhí)行開始,作為一個(gè)開始的標(biāo)簽,最后也打印一個(gè)結(jié)束的標(biāo)簽,為了讓標(biāo)簽看起來整潔,我們?cè)趫?zhí)行開始,執(zhí)行結(jié)束的兩側(cè)增加了由減號(hào)構(gòu)成的線條
我們定義一個(gè)變量scale=10,這個(gè)scale的含義是指我們的文本進(jìn)度條的大概的寬度,為了能夠模擬一個(gè)進(jìn)度,我們使用for循環(huán),我們的基本原理是定義一個(gè)休眠時(shí)間,每次循環(huán)它都會(huì)打印當(dāng)前的進(jìn)度狀態(tài),進(jìn)行簡單的休眠,休眠可以理解為計(jì)算機(jī)在完成某一個(gè)任務(wù)
循環(huán)中首先定義一個(gè)a,它等于字符“”與循環(huán)變量i的乘積,即a表示“”被復(fù)制的次數(shù),來表示當(dāng)前進(jìn)度百分比所表達(dá)的信息,對(duì)于變量b我們表示當(dāng)前剩余進(jìn)度條百分比的信息,變量c我們計(jì)算出當(dāng)前進(jìn)度條的百分比數(shù)值,最后我們使用print函數(shù)設(shè)置三個(gè)槽,在每個(gè)槽中增加了百分比以及相應(yīng)字符串。
文本進(jìn)度條的單行動(dòng)態(tài)刷新
刷新的本質(zhì)就是用后打印的字符覆蓋之前的字符,后者刷新前者就要求輸出的信息不能換行到下一行,print()函數(shù)需要被控制,要求輸出信息后不能換行,并且打印后光標(biāo)退回到之前的位置\r
#TextProBar.py import time for i in range(101):print("\r{:3}%".format(i),end="")time.sleep(0.1)我們?cè)贗DLE中運(yùn)行這段代碼發(fā)現(xiàn),所有的進(jìn)度信息都被輸出,并沒有實(shí)現(xiàn)刷新
這是因?yàn)镮DLE本身它是一個(gè)編寫程序的開發(fā)環(huán)境,它并不是程序運(yùn)行的主要環(huán)境,我們正常運(yùn)行程序要么通過雙擊來實(shí)現(xiàn),要么通過控制臺(tái)來運(yùn)行,一般很少有直接通過IDLE來運(yùn)行的,由于IDLE被設(shè)定為是開發(fā)環(huán)境,為了保證其中參數(shù)的運(yùn)行效果,它們就把\r這個(gè)功能屏蔽掉了。
為了將這個(gè)程序正確運(yùn)行,我們可以打開windows操作環(huán)境中命令行類似的相關(guān)工具,或者在Linux環(huán)境下打開B shell等一些文本的shell工具。
總結(jié)
以上是生活随笔為你收集整理的【Python】IDLE中文本进度条的单行动态刷新无法实现分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大游行小苗买回泡八小时会死吗
- 下一篇: 福字挂在客厅什么地方好 福字怎么挂