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