小技巧:with用法 pycharm控制台输出带颜色的文字 打印进度条的
with用法
with用法在python中是一个很独特的用法,因为别的语言的中没有这个用法。所以针对这个特点我们来做一次总结,什么样的情况下可以同with 我们学到的有文件的操作,和acquire release
说道with首先要引入一个概念:上下文管理协议,支持该协议的对象内部要实现__enter__ () __exit__() 这两种方法
只要实现了这两种方法的对象,在做打开和关闭的操作时我们就可以直接用with来操作。详细请参考https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/
pycharm 的控制台输出带颜色的的文字
在python开发的过程中,经常会遇到需要打印各种信息。海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性。这时候,如果能给重要的信息加上字体颜色,那么就会更加方便用户阅读了。
当然了,控制台的展示效果有限,并不能像前段一样炫酷,只能做一些简单的设置。不过站在可读性的角度来看,已经好很多了。
书写格式,和相关说明如下:
#格式:
设置颜色开始 :\033[显示方式;前景色;背景色m
#说明: 前景色 背景色 颜色 --------------------------------------- 30 40 黑色 31 41 红色 32 42 绿色 33 43 黃色 34 44 蓝色 35 45 紫红色 36 46 青蓝色 37 47 白色 显示方式 意义 ------------------------- 0 终端默认设置 1 高亮显示 4 使用下划线 5 闪烁 7 反白显示 8 不可见 #例子: \033[1;31;40m <!--1-高亮显示 31-前景色红色 40-背景色黑色--> \033[0m <!--采用终端默认设置,即取消颜色设置-->
举例1:
print('\033[0;32;40m欢迎使用学生选课系统\033[0m') try: num = int(input('请输入数字选择功能 :')) except Exception as e: print('\033[31m对不起!您输入的内容有误~\033[0m')
运行结果:
举例2:
print('\033[0;36m爆竹声中一岁除,') print('春风送暖入屠苏。') print('千门万户曈曈日,') print('总把新桃换旧符。\033[0m')
运行结果:
进度条的制作
import sys import time def processBar(num, total): rate = num / total rate_num = int(rate * 100) if rate_num == 100: r = '\r%s>%d%%\n' % ('=' * rate_num, rate_num,) else: r = '\r%s>%d%%' % ('=' * rate_num, rate_num,) sys.stdout.write(r) sys.stdout.flush n = 0 while n<100: n+=1 time.sleep(0.2) #方便观看 processBar(n,100)