来看看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进度条

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开发小说下载器,不再为下载小说而发愁
Python开发英语单词自测工具,助你逆袭单词王!
使用Python编写打字训练小程序
Python开发GUI工具介绍,实战:将图片转化为素描画!
Python一秒搭建ftp服务器,帮助你在局域网共享文件
将Android手机打造成你的python开发者桌面
Flask开发VIP版 HttpServer
Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署
Python爬虫批量下载糗事百科段子
python使你再也不为文章配图与素材发愁,让高清图片占满你的硬盘!
装13失败后,我决定使用Python为生僻字批量注音

The End

OK,今天的内容就到这里,如果觉得内容对你有所帮助,欢迎点击文章右下角的“在看”。
期待你关注我的公众号 清风Python,如果觉得不错,希望能动动手指转发给你身边的朋友们。
希望每周一至五清晨的7点10分,都能让清风Python的知识文章叫醒大家!谢谢……

清风Python

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容