Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚

今天刷优快云看到大佬博文,学到了以文本的方式,打印统计直方图。喜不自胜,特在这里叨叨。🤗
数据说明:直方图数据为random.choices()随机取样,不是真实数据,仅方便讲述“直方图”打印。
print(chr(9632))
“■”符号来填充统计图的直方,编码为“9632”。
def demo():
print()
print(' 编程语言热度统计 '.center(42, '~'))
shuffle(nums)
data = choices(nums, k=6)
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data):
print(f"\n{k}:{chr(9632)*i}{i:>3}")
print('~'*50)
不齐整图
不齐整,不好看啊😱
齐整统计图
print(f"\n{k:>10}:{chr(9632)*i}{i:>3}")
修改打印编程语言名称字符对齐方式为右对齐。(本示例统计的编程语言名称最大最大字符数为10,所以在10的宽度内右对齐。)
整齐图
没颜色,不好看……
彩色统计图
试试加色😋
print(f"\033[32m{chr(9632)}\033[0m"*29)
print(f"\033[90m{chr(9632)}\033[0m"*36)
print(f"\033[92m{chr(9632)}\033[0m"*50)
彩方条图
可以有色打印彩条,修改前面的代码试试。😜😜
def demo_color():
''' 直方图彩条打印 '''
print() # 打印空行。
print(' \033[91m编程语言热度统计\033[0m '.center(51, '~')) # 高亮红色打印表题。
shuffle(nums) # 打乱数据数组。
data = choices(nums, k=6) # 从数据数组中随机选择6个元素。
colors = list(range(31, 38)) + list(range(90, 98)) # 前景色编码列表。由于Python终端默认黑色背景,所以列表不含“31”黑色编码。
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data): # 遍历随机选择的6个元素。
shuffle(colors) # 打乱前景色编码列表。
color = choices(colors, k=1)[0] # 随机选择一个前景色。
print(f"\n{k:>10}:\033[{color}m{chr(9632)*i}\033[0m{i:>3}") # 以随机选择的前景色打印当前遍历到的数据直方图条。
print('~'*50) # 打印结束分割线。
彩条直方图
自码工具实现彩色统计图
哈哈😄,实现了随机前景色的直方彩色统计图打印。
当然,也可以用我前面自码工具mypycolor.py实现,代码更易读明了。代码如下——
from lib.mypycolor import Color
set_color = Color().set_color
def demo_color2():
''' 直方图彩条打印 '''
print() # 打印空行。
print((set_color(' 编程语言热度统计 ', 91)).center(51, '~')) # 高亮红色打印表题。
shuffle(nums) # 打乱数据数组。
data = choices(nums, k=6) # 从数据数组中随机选择6个元素。
colors = list(range(31, 38)) + list(range(90, 98)) # 前景色编码列表。由于Python终端默认黑色背景,所以列表不含“31”黑色编码。
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data): # 遍历随机选择的6个元素。
shuffle(colors) # 打乱前景色编码列表。
color = choices(colors, k=1)[0] # 随机选择一个前景色。
print(f"\n{k:>10}:{set_color(chr(9632)*i, color)}{i:>3}") # 以随机选择的前景色打印当前遍历到的数据直方图条。
print('~'*50) # 打印结束分割线。
效果图
完整Python代码跳过源码
#!/sur/bin/nve python
# coding: utf-8
'''
文本模式打印统计直方图
Author:梦幻精灵_cq
date:2022-09-25
'''
from random import choices
from random import shuffle
def demo():
print()
print(' 编程语言热度统计 '.center(42, '~'))
shuffle(nums)
data = choices(nums, k=6)
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data):
print(f"\n{k:>10}:{chr(9632)*i}{i:>3}")
print('~'*50)
def demo_color():
''' 直方图彩条打印 '''
print() # 打印空行。
print(' \033[91m编程语言热度统计\033[0m '.center(51, '~')) # 高亮红色打印表题。
shuffle(nums) # 打乱数据数组。
data = choices(nums, k=6) # 从数据数组中随机选择6个元素。
colors = list(range(31, 38)) + list(range(90, 98)) # 前景色编码列表。由于Python终端默认黑色背景,所以列表不含“31”黑色编码。
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data): # 遍历随机选择的6个元素。
shuffle(colors) # 打乱前景色编码列表。
color = choices(colors, k=1)[0] # 随机选择一个前景色。
print(f"\n{k:>10}:\033[{color}m{chr(9632)*i}\033[0m{i:>3}") # 以随机选择的前景色打印当前遍历到的数据直方图条。
print('~'*50) # 打印结束分割线。
from lib.mypycolor import Color
set_color = Color().set_color
def demo_color2():
''' 直方图彩条打印 '''
print() # 打印空行。
print((set_color(' 编程语言热度统计 ', 91)).center(51, '~')) # 高亮红色打印表题。
shuffle(nums) # 打乱数据数组。
data = choices(nums, k=6) # 从数据数组中随机选择6个元素。
colors = list(range(31, 38)) + list(range(90, 98)) # 前景色编码列表。由于Python终端默认黑色背景,所以列表不含“31”黑色编码。
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data): # 遍历随机选择的6个元素。
shuffle(colors) # 打乱前景色编码列表。
color = choices(colors, k=1)[0] # 随机选择一个前景色。
print(f"\n{k:>10}:{set_color(chr(9632)*i, color)}{i:>3}") # 以随机选择的前景色打印当前遍历到的数据直方图条。
print('~'*50) # 打印结束分割线。
if __name__ == '__main__':
nums = list(range(36)) # 设置随机取样范围
demo() # 调用函数打印直方图
demo_color() # 调用函数打印彩色直方图
demo_color2() # 调用函数打印彩色直方图(自码工具mypycolor实现)
print() # 打印空行
__上一篇:__ 彩色文字界面“尼姆游戏”(Python类+mypycolor工具协同打造)
__下一篇:__ 切记:Python迭代器iterator只可以读取一次,忽略会有意想不到的麻烦
我的HOT博:
- Hot:回车符、换行符和回车换行符(1002阅读)
- Hot:Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义(1017阅读)
- pandas 数据类型之 Series(1099阅读)
- 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )(1226阅读)
- 练习:银行复利计算(用 for 循环解一道初中小题)(1111阅读)
- pandas 数据类型之 DataFrame(1765阅读)
- Hot:班里有人和我同生日难吗?(蒙特卡洛随机模拟法)(2125阅读)
- Python字符串居中显示(1792阅读)
- 练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)(1660阅读)
- 用 pandas 解一道小题(1988阅读)
- 可迭代对象和四个函数(1078阅读)
- “快乐数”判断(1245阅读)
- 罗马数字转换器(构造元素取模)(1984阅读)
- Hot:罗马数字(转换器|罗生成器)(4302阅读)
- Hot:让QQ群昵称色变的代码(33047阅读)
- Hot:斐波那契数列(递归| for )(4060阅读)
- 柱状图中最大矩形(1661阅读)
- 排序数组元素的重复起止(1253阅读)
- 电话拨号键盘字母组合(1380阅读)
- 密码强度检测器(1889阅读)
- 求列表平衡点(1827阅读)
- Hot: 字符串统计(4299阅读)
- Hot:尼姆游戏(聪明版首发)(3459阅读)尼姆游戏(优化版)(1074阅读)
推荐条件
点阅破千

精品文章:
- 好文力荐:《python 完全自学教程》齐伟书稿免费连载
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
Python 入门指南【Python 3.6.3】
好文力荐:
-
全栈领域优质创作者——寒佬(还是国内某高校学生)好文:《非技术文—关于英语和如何正确的提问》,“英语”和“会提问”是学习的两大利器。