[oeasy]python0083_[趣味拓展]字体样式_正常_加亮_变暗_控制序列

简介: [oeasy]python0083_[趣味拓展]字体样式_正常_加亮_变暗_控制序列

字体样式 回忆上次内容

  • 上次了解了 一个新的转义模式
  • \033 逃逸控制字符 esc


  • esc 让输出
  • 退出 标准输出流
  • 进行 控制信息的设置
  • 可以 清屏
  • 也可以 设置光标输出的位置



  • 还能做什么呢?
  • 可以 设置 字符的颜色吗???🤔


添加图片注释,不超过 140 字(可选)

查看细节

  • 回忆
  • 控制序列 前导符\033[


  • \是转义字符
  • 要和 后面的内容
  • 一起 构成转义序列



  • \033 是转义序列
  • 转义转义
  • 转化含义
  • 转义序列\033对应的 字符含义 是Escape
  • 从标准输出流 逃逸 出去



  • 输出字符串时
  • 出现了 Escape
  • 能逃去到 哪里 呢?


  • 从 输出的字符串中 Escape 出去
  • 后面的内容 不是纯文本了
  • 而是 控制序列(Control Sequence)


具体控制

  • \033[CSI
  • Control Sequence Introducer
  • 控制序列前导符


添加图片注释,不超过 140 字(可选)

  • CSI n m
  • CSI 之后的是ansi给的关于字体样式的设置细节


  • 上图中的 n 对应
  • 0-10的一个数字


  • 上图中的m 说明
  • 这是 要进行 外观设置
  • 选择图形渲染 参数
  • SGR (Select Graphic Rendition) parameters



  • 上次
  • H 控制位置


  • 这次
  • m 控制外观


  • 具体怎么控制外观呢?

具体设置

  • 从1m 到10m

添加图片注释,不超过 140 字(可选)

  • 动手试试

1m、0m

  • 结构是 \033[1m
  • \033是逃逸字符
  • 1 对应着 增亮或变粗
  • 0 对应着 还原
  • m 是 固定的格式要求


添加图片注释,不超过 140 字(可选)

  • 好像颜色 是有点 不一样

添加图片注释,不超过 140 字(可选)

  • 我可以 把\033 简化为 \e 么?
  • 实践 出 真知

尝试\e

  • python游乐场中不能用\e

添加图片注释,不超过 140 字(可选)

  • 结论
  • \033 可以进入 字体控制模式
  • \e 目前 在python中 不支持


  • 但是 在shell中 呢?

在shell中

  • 在shell中
  • echo命令 支持\e


添加图片注释,不超过 140 字(可选)

  • python游乐场 中
  • 不支持"\e"
  • 只支持"\033"


2m

添加图片注释,不超过 140 字(可选)

  • 2 和 1 相反
  • 1m 更亮
  • 2m 更暗
  • 0m 还原


添加图片注释,不超过 140 字(可选)


  • 一会儿亮
  • 一会儿暗


  • 好像 挺好玩的

编写程序

  • 编辑一个py文件
  • 注意
  • 文件名 不能是time.py
  • 因为 我们要引入的包 叫做time
  • time.py 会让 python3 引入自己



import time for i in range(100):     csi = "\033[" color = str(i % 3)     print(csi + color + "moeasy")     time.sleep(0.2)

  • i%3 是让 i对3取余
  • 得到0、1、2三种可能


代码

添加图片注释,不超过 140 字(可选)

  • i 从1到100
  • color在"0"、"1"、"2"中 循环
  • 设置文字在"正常"、"亮"、"暗"中 循环


  • 冷却时间是 0.2s


添加图片注释,不超过 140 字(可选)

  • 规律性很强
  • 其实 通过亮和暗
  • 可以得到 更好玩的东西


bb

  • 可以 看看bb 这个应用
  • 在shell中 安装bb


sudo apt install bb

  • 键入 bb 直接运行
  • bb里面 用字符画风格
  • 实现 三维旋转



添加图片注释,不超过 140 字(可选)

  • 应该是 视频按帧 转化过来的
  • 很好玩!


  • 可以 引入随机吗?

引入随机

  • 进入python游乐场

import random help random

  • 先看看帮助文档

添加图片注释,不超过 140 字(可选)

  • random.random() 在 [0,1) 之间

添加图片注释,不超过 140 字(可选)

  • random.random()*2 在 [0,2) 之间
  • int(random.random()*2) 得到 整数
  • {0,1}
  • (0 或者 1)



随机翻倍

  • 想要让屏幕显示
  • 0或者1


添加图片注释,不超过 140 字(可选)

  • random.random() 在 (0,1) 之间
  • random.random()*2 在 [0,2) 之间


  • 再用int函数取整
  • 得到 {0, 1}
  • (0 或 1)



添加图片注释,不超过 140 字(可选)

  • 颜色的值 可以是
  • {0, 1, 2}
  • (0 或 1 或 2)


  • 这又应该如何取得呢?

乱序

  • 编辑一个py文件
  • 注意文件名不能是
  • time.py
  • random.py



import time import random while True:     csi= "\033[" color = int(random.random()*3)     num = int(random.random()*2)     print(csi + str(color) + "m" + str(num),end="")

  • 数字是
  • 0 或 1


  • 颜色是
  • 亮 \33[1m
  • 正常 \33[0m
  • 暗 \33[2m


效果

  • 这下确实 乱了起来😄

添加图片注释,不超过 140 字(可选)

  • 而且是
  • 毫无规律地
  • 乱了起来



纷乱 乱花渐欲迷人眼 浅草才能没马蹄

添加图片注释,不超过 140 字(可选)

  • 视觉表象看起来
  • 确实很乱


  • 想要 总结规律
  • 就要从视觉中抽象出来


总结

  • \033 xm 可以改变字体样式
  • 0m - 10m 之间设置的 都是字体效果
  • 0m 复原
  • 1m 变亮
  • 2m 变暗



添加图片注释,不超过 140 字(可选)

  • 从3m到10m
  • 又是什么效果 呢??


添加图片注释,不超过 140 字(可选)


目录
相关文章
|
8月前
|
人工智能 Python
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
267 62
|
7月前
|
存储 索引 Python
[oeasy]python093_find方法_指数为负数_index_实际效果
本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
432 8
|
8月前
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
219 20
|
8月前
|
Python
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
194 17
|
8月前
|
Python 容器
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
242 12
|
8月前
|
索引 Python
[oeasy]python092_eval_衡量_转化为列表
本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
168 2
|
8月前
|
人工智能 Python
[oeasy]python088_列表_清空列表_clear
本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
184 5
|
8月前
|
人工智能 Python
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
203 11
|
7月前
|
存储 数据采集 大数据
Python推导式进阶指南:优雅初始化序列的科学与艺术
本文系统讲解Python推导式的用法与技巧,涵盖列表、字典、集合推导式及生成器表达式。通过代码示例和性能对比,展示推导式在数据结构初始化中的优势:简洁高效、执行速度快30%-50%。文章分析基础语法、核心应用场景(如序列构造、键值对转换、去重运算)及嵌套使用,并探讨使用边界与最佳实践,强调可读性优先原则。最后指出,合理运用推导式能显著提升代码质量和处理效率,同时避免过度复杂化的陷阱。
205 0
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
286 102

推荐镜像

更多