自主学习python文本进度条

经过自己一段时间的学习,已经略有收获了!在整个过程的进行中,在我逐渐通过看书,看案例,做题积累了一些编程python的经验以后,我发现我渐渐爱上了python,爱上了编程!

接下来,当然是又一些有趣的实验案例:文本进度条的制作和π的计算!

相信大家都玩过游戏吧,面对加载的游戏数据,我们可能会遇到这样一种情况:网络卡顿的时候,进度条缓缓移动却迟迟不能加载完全,实在是消磨人们的耐心(狗头)

在我们的印象中,进度条应该是一个条状方块,随着时间的推移慢慢向前移动,直至数据加载完成!

那么,要怎么用python来实现呢??

我们有一些不同的形式呢~

一·、最简单的一种

基本思想:

这是一种简单的,按照任务执行的百分比将整个任务划分为100个单位,每执行N%输出一次进度条;每行输出包括进度百分比,代表已完成的部分(**)和未完成的部分(..)的两种字符,以及一个跟随完成度前进的小箭头:

类似于这样:%10{******->..................................................}

代码:

接下来,就来展示一下实现上面这个指令的python代码要怎么写吧~

import time
scale=10
print("------执行开始------")
for i in range(scale+1):
  a,b=‘**‘*i,‘..‘*(scale-i)
  c=(i/scale)*100
  print("%{:^3.0f}[{}->{}]".format(c,a,b))
  time.sleep(0.1)
print("------执行结束------")

显然我们从这几行代码中可以看出,代码调用了python中的time库,这是标准时间库;

由于程序的执行速度远超人类的视觉停留时间,直接进行字符输出几乎是瞬间完成,所以我们采用了time库中的time.sleep(t)函数来将当前的程序暂时挂起 t 秒,以便人眼能够捕捉到程序进行的细节;

我们可以再IDLE环境下看到它的运行效果:

(将代码打入IDLE环境中)

(一行行根据0.1秒的间隔输出出来)

是不是很酷呢?

二、单行动态刷新

基本思想:

我们一般见到的进度条都是在一行上刷新操作的,所以,我们运用动态刷新的思想,将每一次进度输出都固定在同一行,并不断地用生成的字符串覆盖之前的输出,形成进度条不断刷新的动态效果!

代码:

import time
for i in range(101):
print("\r{:3}%".format(i),end="")
time.sleep(0.03)

看上去十分简洁,它最后呈现的效果是这样的:

由于IDLE环境下本身屏蔽了单行刷新的功能,想要有刷新效果就得移步到控制台使用命令行执行程序

方法:

1.首先是按住键盘的“windows+R”调用出cmd窗口

紧接着,我们就可以将文件的地址输入来调用了:

这是我存放的地址

选择python打开

(最后效果啦~)

是不是很酷??

三、带刷新的文本进度条

基本思想:

将前两小节的程序合并,再添加开始和结束提示语,可以很好地实现带刷新的文本进度条,我们调用time.clock()函数来对运行时间进行监控;

代码:

import time

scale=50
print("执行开始".center(scale//2,‘-‘))
t=time.clock()
for i in range(scale+1):
  a=‘*‘*i
  b=‘.‘*(scale-i)
  c=(i/scale)*100
  t-=time.clock()
  print("\t{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,-t),end=‘‘)
  time.sleep(0.05)
print("\n"+"执行结束".center(scale//2,‘-‘))

最终效果:

大概的形式就是这样啦!

原文地址:https://www.cnblogs.com/iconangle/p/10556176.html

时间: 2024-11-06 03:46:14

自主学习python文本进度条的相关文章

#Python绘制 文本进度条,带刷新、时间暂缓的

#Python绘制 文本进度条,带刷新.时间暂缓的 #文本进度条 import time as T st=T.perf_counter() print('-'*6,'执行开始','-'*6) maxx=11 #要大1 for i in range(maxx): s1='*'*i s2='->' s3='.'*(maxx-i-1) T.sleep(0.5) #假装有延时 dur=T.perf_counter()-st print("\r%3d%%[%s%s%s] %.2fs"%(i

python实例文本进度条

简单的文本进度条代码 解析 引入time库 打印一行作为开始 最后也打印一个结束的标签 定义变量等于10,文本进度条大概的宽度是10 使用for循环来模拟进度,for i in range()能够不断地产生循环 每次答应都会显示当前的休眠状态 字符串与整数的乘积表示字符串被复制的次数 变量a 表示?被复制的次数 变量b 表示点被复制的次数,与当前剩余的进度条比例之间的乘积 通过a和b就可以知道当前已知执行的和未知执行的关系 c表示输出当前输出进度条与未输出之间的关系 使用print函数增加了槽,

python预课02 time模块,文本进度条示例,数字类型操作,字符串操作

time模块 概述:time库是Python中处理时间的标准库,包含以下三类函数 时间获取: time(), ctime(), gmtime() 时间格式化: strftime(), strptime() 程序计时: sleep(), perf_counter() 时间获取: import time print(time.time()) #获取当前时间戳,即计算机内部时间值,浮点型 print('-------') print(time.ctime()) #获取当前时间并以易读方式表示,返回字符

【Python】文本进度条

1.0代码: import time#引入time库 scale=10#文本进度条宽度 print("------执行开始------") for i in range(scale+1):#模拟一个进度 a='*'*i#字符串被复制的次数,"*"表示百分比所表达的信息 b='.'*(scale-i) c=(i/scale)*100#输出对应进度条的百分比 print("{:^3.0f}%[{}->{}]".format(c,a,b)) ti

第七章 文本进度条的实现

文本进度条 大家都见过程加载的时候的文本进度条 进度条的原理是什么呢? 1.采用字符串方式打印可以动态变化的文本进度条 2.进度条需要能在一行中逐渐变化 问题分析: 如何获取一个文本进度条的变化时间呢? 1.采用sleep()模拟一个持续的进度 2.似乎不那么难 简单的开始: 1 #TextProBarV1.py 2 import time 3 scale = 10 4 print("------执行开始------") 5 for i in range(scale+1): 6 a =

Python的time库和文本进度条 大发彩_票平台搭建

大发彩_票平台搭建 地址一:[hubawl.com]狐霸源码论坛地址二:[bbscherry.com] 是Python中处理时间的标准库1.time库包括三类函数 时间获取:time() ctime() gmtime()时间格式化:strftime() strptime()程序计时:sleep(), perf_counter()2.时间获取 3.时间格式化 4.程序计时 5.进度条实例 #textProBarV1.pyimport timescale = 50print("执行开始".

python实现进度条

先说一下文本系统的控制符: \r: 将光标移动到当前行的首位而不换行: \n: 将光标移动到下一行,并不移动到首位: \r\n: 将光标移动到下一行首位. 环境: [email protected]:/alex/py/jingdutiao# python3 Python 3.5.2 (default, Jul 5 2016, 12:43:10) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "

python实现进度条和百分比同时显示

python中同时打印进度条和百分比 仅打印进度条: import sys,time for i in range(100): sys.stdout.write('>') sys.stdout.flush() time.sleep(0.1) 效果: 打印百分比: import sys,time for i in range(100): sys.stdout.write('\r%s%%'%(i+1)) sys.stdout.flush() time.sleep(0.1) 效果: 打印进度条和百分比

Python的进度条的制作

import sys,time #导入模块 for i in range(50): #进度条的长度 sys.stdout.write("#") #进度条的内容,这里要注意了,pycharm有可能不显示write的方法 sys.stdout.flush() #刷新缓存 time.sleep(0.5) #间隔时间,和shell的sleep差不多吧 上面使用sys模块的标准输出,并没循环一次就刷新一次缓存如果没有flush,内容将会在内存中全部打印完后才会显示出来.