日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】IDLE中文本进度条的单行动态刷新无法实现分析

發布時間:2024/9/30 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】IDLE中文本进度条的单行动态刷新无法实现分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文本進度條需求分析

采用字符串方式打印可以動態變化的文本進度條
進度條需要能在一行中逐漸變化

如何獲得文本進度條的變化時間呢?我們采用sleep()模擬一個持續的進度

import time scale=10 print("------執行開始------") for i in range(scale+1):a='*'*ib='.'*(scale-i)c=(i/scale)*100print("{:^3.0f}%[{}->{}]".format(c,a,b)) print("------執行結束------")

代碼分析及結果展示:

引入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中文本进度条的单行动态刷新无法实现分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。