来看看Python炫酷的颜色输出与进度条打印
英语单词优化
上篇文章写到了Python开发英语单词记忆工具,其中依赖了bootstrap.css jQuery.js 基础html模块以及片段的css样式。有些朋友问,怎么能将这个练习题打包成单独的exe可执行文件,来脱离python环境使用呢?
在这里跟大家简单说下思路,有需求的朋友可以自己去扒拉扒拉…
依赖的css和js,如果有外网的前提,可以使用bootcdn提供的链接引用:
https://cdn.bootcss.com/jquery/3.4.0/jquery.min.js
https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css
自己编辑的css样式,可以添加在head中的style中
基础html可以作为一大段的string在python中进行定义,最终替换关键内容后输出。至于cet4的单词表,建议就不要添加在代码中了,和打出来的exe文件放置在一起即可。
好了,思路就是这些,喜欢的朋友可以去尝试做一下,这样就可以无时无刻给自己出一份英语练习测试题了。
Python风骚的打印!
大家平时在Linux/Windows下安装软件时,经常会出现进度条和百分比的提示,Python是否能实现这样的打印?安装过程中,经常会看到很多带颜色的安装说明,我们在python输出时,确是千篇一律的黑底白色,是否想过打印的炫酷一些呢?
以上操作其实很简单,今天就来教教大家,通过几分钟的学习让之后代码的输出变得与众不同!
Python打印进度条
python打印进度条的原理其实很简单,先让我们看一个例子吧:
# -*- coding: utf-8 -*-
# @Author : 王翔
# @WeChat : King_Uranus
# @公众号 : 清风Python
# @Date : 2019/9/16 22:09
# @Software : PyCharm
# @version :Python 3.7.3
# @File : ProgressBar.py
import time
def progress_bar(total):
if total <= 0:
raise ValueError("Wrong total number ...")
# step = (100 // total if total <= 100 else total // 100)
for i in range(0, total):
time.sleep(0.05)
step = int(100 / total * (i + 1))
str1 = '\r[%3d%%] %s' % (step, '>' * step)
print(str1, end='', flush=True)
progress_bar(20)
print()
progress_bar(110)
我们通过自己实现了进度条的展示,那么python是否具备现成的模块呢?答案是Yes![ tqdm ]
Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。
安装:pip install tqdm
来看一个例子:
from tqdm import tqdm
import string
import time
for char in tqdm(string.ascii_uppercase):
time.sleep(0.1)
for i in tqdm(range(50)):
time.sleep(0.05)
tqdm的强大远不止此,喜欢的朋友可以去它的git网址详细学习:https://github.com/tqdm/tqdm
Python带色彩输出
python颜色输出其实只是调用了命令号的相关特殊标记,shell中我们也经常使用它:
print('\033[30m打印前景色0\033[0m')
print('\033[31m打印前景色1\033[0m')
print('\033[32m打印前景色2\033[0m')
print('\033[33m打印前景色3\033[0m')
print('\033[34m打印前景色4\033[0m')
print('\033[35m打印前景色5\033[0m')
print('\033[36m打印前景色6\033[0m')
print('\033[37m打印前景色7\033[0m')
print('\033[40m打印背景色0\033[0m')
print('\033[41m打印背景色1\033[0m')
print('\033[42m打印背景色2\033[0m')
print('\033[43m打印背景色3\033[0m')
print('\033[44m打印背景色4\033[0m')
print('\033[45m打印背景色5\033[0m')
print('\033[46m打印背景色6\033[0m')
print('\033[47m打印背景色7\033[0m')
print('\033[0m打印显示方式0\033[0m')
print('\033[1m打印显示方式1\033[0m')
print('\033[4m打印显示方式4\033[0m')
print('\033[5m打印显示方式5\033[0m')
print('\033[7m打印显示方式7\033[0m')
print('\033[8m打印显示方式8\033[0m')
print('\033[5;31;47m综合打印\033[0m')
每条默认的**\033[0m为回复终端默认
最后一个\033[5;31;47m**综合打印为使用闪烁方式红色字体白色背景色打印文字!
参数说明:
前景色 | 背景色 | 颜色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 红色 |
32 | 42 | 绿色 |
33 | 43 | 黃色 |
34 | 44 | 洋红 |
36 | 46 | 青色 |
37 | 47 | 白色 |
显示方式 | 意义 |
---|---|
0 | 终端默认设置 |
1 | 高亮显示 |
22 | 非高亮显示 |
4 | 使用下划线 |
24 | 去下划线 |
5 | 闪烁 |
25 | 去闪烁 |
7 | 反白显示 |
27 | 非反显 |
8 | 不可见 |
28 | 可见 |
那么和上面一样的套路,python中是否有模块能实现这种颜色打印的功能呢?答案依然是Yes! [ colorama ]
Python的Colorama模块,可以跨多终端,显示字体不同的颜色和背景,只需要导入colorama模块即可,不用再每次都像linux一样指定颜色。
pip install colorama
Fore是针对字体颜色,Back是针对字体背景颜色,Style是针对字体格式
Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
Style: DIM, NORMAL, BRIGHT, RESET_ALL
>>> from colorama import Fore, Back, Style
>>> print(Fore.RED + '打印红色文字')
>>> 打印红色文字
>>> print(Back.GREEN + '设置背景为绿色')
>>> 设置背景为绿色
>>> print(Style.RESET_ALL)
>>> print('恢复默认')
>>> 恢复默认
细心的网友看到,我们如果没有恢复默认的话,会继承上面的颜色状态。那么,如何像刚才一样,每次输出后自动化恢复呢?
from colorama import init, Fore, Back, Style
init(autoreset=True)
print(Fore.RED + '打印红色文字')
print(Back.GREEN + '设置背景为绿色')
print('恢复默认')
关于装13,只能帮大家到这里了,希望今天的内容大家能喜欢…
作者:清风Python