从文本进度条开始:谈谈自己缺失的Python基础知识

  • 一、文本进度条
  • 二、基础知识
    • (一)Python center()方法
    • (二)time.perf_counter()
    • (三)print()
  • 三、练习的代码

一、文本进度条

在对π进行求值时看到了文本进度条,之前一直用的是tqdm模块。

来源:步平凡:《使用 PYTHON 实现Π的计算》,链接: https://www.cnblogs.com/bpf-1024/p/10549896.html.

源码:

from math import fabs           #导入数学模块
from time import perf_counter   #导入时间模块def Bar(i):         #动态文本条N = pow(10,level)a = int((i/N)*50)b = 50 - aY , N = '*' * a , '.' * bprint("\r计算中:{:3.0f}% [{}->{}] {:.2f}s".format(2 * a,Y,N,perf_counter()),end='')level = eval(input('计算Pi精确到小数点后几位数:'))
print('\n{:=^70}'.format('计算开始'))
a,b,pi,tmp = 1,1,0,1
i = 0
'''a 分子  |  b 分母  |  pi 圆周率tmp 存储a/b的值    |  i  执行进度
'''
perf_counter()      #开始计时
while (fabs(tmp) >= pow(10,-level)): #计算Pipi += tmpb += 2a = -atmp = a/bi += 2Bar(i)        #调用函数,实时显示计算进度
print('\n{:=^70}'.format('计算完成'))
print('\nPi的计算值为:{}'.format(round(pi*4,level))) #输出计算结果

对于Bar(i)表示看不懂,就又去找了一个glitterye:《用python实现单行动态刷新文本进度条》,链接: link.

二、基础知识

(一)Python center()方法

菜鸟教程:链接: link.

str = '2020'
print(str.center(20))#20为宽度
print(str.center(20,'-'))#'-'为填充内容

通过尝试明白了,center()方法是居中输出
str.center(width[, fillchar])
width – 字符串的总宽度。
fillchar – 填充字符。

(二)time.perf_counter()

经过尝试发现这是一个计时器,但是初始的print(time.perf_counter())并不为0
import time
print(time.perf_counter())
time.sleep(5)
print(time.perf_counter())

(三)print()

菜鸟教程:链接: link.

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
sep -- 用来间隔多个对象,默认值是一个空格。
end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
file -- 要写入的文件对象。
flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流    会被强制刷新。

尝试:

for i in range(10):
print('\r',i,end='')
#因为默认的结尾为'\n’,所以改变导致更新

虽然之前见过end=’’,但是一直不明其里,只是知道可以不换行,而对于\r见过但是没有用过,之前一直按照《Python编程:从入门到实践》用过\t \n,到此处才明白,\r相当于回车。

但是对于flush不怎么理解,True或者False效果一样

print(".",end = '',flush=True)

print(".",end = '',flush=False)


一样是一个一个点刷新

并不像energy_百分百:《#深入理解# python 的 print() 函数 在当前行打印 不换行》说的一次性刷新六个点(ps:难道我的理解有误),链接: link.

三、练习的代码

import time
scale = 50
print("执行开始".center(scale // 2,"-"))#中心显示
start = time.perf_counter()#计时器
for i in range(scale + 1):
a = "*" * i
#*随着循环递增
b = "." * (scale - i)
#随着循环递减
c = (i / scale) * 100
# c为前面的百分比
dur = time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end = "")time.sleep(0.1)
print("\n"+"执行结束".center(scale // 2,"-"))
for i in range(10):print('a \r a',i,end='')
#因为默认的结尾为'\n’,所以改变导致更新

从文本进度条开始:谈谈自己缺失的Python基础知识相关推荐

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

    文本进度条需求分析 采用字符串方式打印可以动态变化的文本进度条 进度条需要能在一行中逐渐变化 如何获得文本进度条的变化时间呢?我们采用sleep()模拟一个持续的进度 import time scal ...

  2. python文本进度条94页_Python学习笔记 | 实例4:文本进度条

    本文为中国大学MOOC<Python语言程序设计>课程学习笔记,课程主讲:嵩天老师,练习平台:Python123,参考教材:<Python语言程序设计基础> 文本进度条-简单的 ...

  3. 【Python】文本进度条

    1.0代码: import time#引入time库 scale=10#文本进度条宽度 print("------执行开始------") for i in range(scale ...

  4. python文本进度条代码解释_python动态文本进度条的实例代码

    如何实现动态单行刷新,答案是:覆盖 但是怎么实现覆盖呢? 关键在于不换行而且能回退到开始位置 那么就要用到 \r 这个东西就是让光标回退到当前行初始位置 记得不能让换行 代码片段:#文本进度条.py ...

  5. Python项目实践:文本进度条

    文本进度条 采用字符串方式打印可以动态变化的文本进度条 进度条需要能在一行中逐渐变化 采用sleep()函数模拟一个持续的进度 版本一:简单的开始 # TextProBarV1.py import t ...

  6. Python语言程序设计(MOOC崇天)第三章基本数据类型学习笔记(天天向上的力量+文本进度条)

    回顾: 第一章 第二章 本周内容:基本数据类型 3.1数字类型及操作 整数类型: 浮点数 浮点数计算存在不确定尾数的原因....... 浮点数可以采用科学计数法表示 复数类型: 傅里叶变换用的多... ...

  7. Python实现 文本进度条展示(嵩天老师)

    示例4:文本进度条 输出要求: -采用字符串方式打印文本进度条 -进度条需要能在一行中逐渐变化 代码:(不能动态刷新) #TextProBarV1.py import time scale=10 pr ...

  8. [Python] 实现文本进度条

    目录 简单的开始 单行动态刷新 带刷新的文本进度条 简单的开始 进度条是计算机处理任务或执行软件中常用的增强用户体验的重要手段,它能度条功能.今天我们将利用 Python 字符串处理方法实现文本进度条 ...

  9. python有哪两种表现形式小练笔_Python学习小练笔—文本进度条

    1.简单文本进度条 import time scale=10 print("-----执行开始-----") for i in range(scale+1): a,b='**'*i ...

最新文章

  1. torch torchvision 下载安装与使用
  2. 不做在线电商,或许才是永辉超市的未来
  3. AWS负载均衡器的健康检查机制
  4. cubieboard 将linux debian 系统灌入Nand中的操作记录
  5. Projection投影
  6. 数据库零碎---mysql编码设置,与乱码分析
  7. 代理ip如何使用_为什么在使用代理IP爬虫时会出现超时?
  8. GitHub 超 20000 Star,最火开源视频库 FFmpeg 这 20 年!
  9. Vmware报错:此主机支持IntelVTx 但IntelVTx处于禁用状态
  10. 使用orCAD Library Builder建立TO-220的封装
  11. RNA剪接体 Spliceosome | 冷冻电镜 | 结构生物学
  12. 纯css实现3D立体六面体照片墙
  13. python矩阵变成图片_Python图片转换成矩阵,矩阵数据转换成图片
  14. 计算机c盘应该装什么区别,电脑的c盘和d盘有什么区别吗
  15. python爬虫-采集英语翻译
  16. < CSS技巧 之 弹性布局( Flex布局 ) - 实例篇 >
  17. 微信小程序开发——JS中字符和数组的操作
  18. 机电一体化系统在机械工程中运用
  19. uml聊天系统服务器端类图,聊天系统服务器端类图
  20. 在线png转jpg,这款图片格式转换器分享给你

热门文章

  1. 联想微型计算机c325参数,联想一体机c325性能表现 联想一体机c325配置参数
  2. 一个入行很长的老鸟给新手的一些建议——转
  3. 知路,然后智行远;懂行,所以万业兴
  4. 经纬度差和米单位的换算
  5. 20条直播间行业术语给你总结好了
  6. 基于51,人体红外感应和RC522的门禁系统
  7. 马斯克都不懂的 GraphQL,API 网关又能对其如何理解?
  8. c语言实现姓名排序———字符串复制函数,字符串比较函数
  9. Windows远程桌面 无法进行复制粘贴的问题解决方法
  10. 自动表单生成工具说明(后端、桌面、web、移动端)