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)

最新文章

  1. maven + eclipse + tomcat热部署
  2. 大话JSON之Gson解析JSON
  3. Topcoder SRM 627 div1 HappyLettersDiv1 : 字符串
  4. &amp;11,散列表
  5. boost 编译,windows平台
  6. 用sqlplus为oracle创建用户和表空间&lt;转&gt;
  7. Fragment +ViewPager
  8. ACdream 1188 Read Phone Number (字符串大模拟)
  9. #pragma预处理指令讲解
  10. 在Windows下读取Ext4分区
  11. 第八届河南省赛B.最大岛屿(dfs)
  12. Lucene核心--构建Lucene搜索(上篇,理论篇)
  13. cocos2dx A* + tiledMap
  14. 转:SpringMVC浅谈
  15. 中国IT史上两大严重事故对我们的警醒及预防措施
  16. Java实现杨辉三角
  17. 47.Linux-DEVICE_ATTR()介绍及使用示例
  18. 【转载】多模式串匹配之AC自动机
  19. 浅谈大数据与hadoop家族
  20. java-常用注解

热门文章

  1. python基础篇(三)
  2. 烽火传递【单调队列优化dp】
  3. git下载仓库的部分目录
  4. LeetCode 404. 左叶子之和(Sum of Left Leaves)
  5. [转帖]AMD三代锐龙线程撕裂者命名曝光:24核心3960X
  6. python 2.7 环境配置
  7. (二)spring初次遇见shiro
  8. python基础 — CSV 数据处理
  9. 网络地址转换(NAT)
  10. go语言实现链式栈