[oeasy]python0068_ 字体样式_正常_加亮_变暗_控制序列

简介: [oeasy]python0068_ 字体样式_正常_加亮_变暗_控制序列

字体样式

回忆上次内容

  • 上次了解了一个新的转义模式
  • \33 逃逸控制字符 esc
  • esc 让输出 退出标准输出流
  • 进行控制信息的设置
  • 可以清屏
  • 也可以设置光标输出的位置

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

查看细节

  • 回忆
  • 控制序列 前导符\033[
  • \是转义字符
  • 要和 后面的内容
  • 一起 构成转义序列
  • \033 是转义序列
  • 转义转义
  • 转化含义
  • 转义序列\033对应的 字符含义 是Escape
  • 再次 逃逸 出去
  • 字符串 里面出现了 Escape
  • 能逃去到哪里呢?
  • 从 输出的字符串 中 Escape 出去
  • 后面的内容 不是纯文本了
  • 而是 控制序列(Control Sequence)

具体控制

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

  • 上图中的 CSI
  • Control Sequence Introducer
  • 控制序列前导符
  • CSI 就是 \033[
  • 上图中的 n 对应
  • 0-10的一个数字
  • 上图中的m 说明
  • 这是 要进行 外观设置
  • 这个 部分属于
  • SGR (Select Graphic Rendition) parameters
  • 选择图形渲染 参数
  • 正如上次
  • H 控制位置
  • n从1-10
  • 具体是 设置了些 什么呢?

具体设置

  • 从1m 到10m

  • 我们 试试

1m、0m

  • 结构是 \033[1m
  • \033是逃逸字符
  • 1 对应着 增亮或变粗
  • 0 对应着 还原
  • m 是 固定的格式要求
  • 好像颜色 是有点 不一样

  • 我可以 把\033 简化为 \e 么?
  • 回到python游乐场

尝试\e

  • 实践结论
  • \033 可以进入 字体控制模式
  • \e 目前 在python中 不支持
  • 但是 在shell中 呢?

  • shell中 支持\e
  • 还是 回到游乐场

2m

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

  • 一会儿亮
  • 一会儿暗
  • 好像 挺好玩的

编写程序

  • i%3 是让i对于3取余数
  • 得到0、1、2三种可能
import time
for i in range(100):
    csi = "\033["
    color = str(i % 3)
    print(csi + color + "moeasy")
    time.sleep(0.2)
  • i 从1到100
  • color在"0"、“1”、"2"中 循环
  • 设置文字在"正常"、“亮”、"暗"中 循环
  • 冷却时间是 0.2s

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

bb

  • 可以 看看这个
sudo apt install bb
bb
  • 里面 用字符画风格
  • 实现 三维旋转

  • 应该是 视频按帧 转化过来的
  • 很好玩!
  • 亮和暗 没有那么规律
  • 引入 随机乱序

引入随机

  • import random

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

随机翻倍

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

  • int(random.random()*3 )
  • 得到 {0, 1, 2}
  • (0 或 1 或 2)

乱序

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

效果

  • 这下确实 乱了起来😄

  • 而且是
  • 毫无规律地
  • 乱了起来
  • 看看 后面
  • 还有什么好玩

总结

  • m 可以改变字体样式
  • 0-10 之间设置的都是字体效果
  • 0 重置为默认
  • 1 变亮
  • 2 变暗

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

  • 真的可以blink闪烁吗?👁
  • 我们下次再说!👋
  • 蓝桥->https://www.lanqiao.cn/courses/3584
  • github->https://github.com/overmind1980/oeasy-python-tutorial

目录
相关文章
|
2月前
|
Unix 编译器 Shell
[oeasy]python0033_先有操作系统还是先有编程语言_c语言是怎么来的
本文回顾了计算机语言与操作系统的起源,探讨了早期 Unix 操作系统及其与 C 语言的相互促进发展。Unix 最初用汇编语言编写,运行在 PDP-7 上,后来 Thompson 和 Ritchie 开发了 C 语言及编译器,使 Unix 重写并成功编译。1974 年 Ritchie 发表论文,Unix 开始被学术界关注,并逐渐普及。伯克利分校也在此过程中发挥了重要作用,推动了 Unix 和 C 语言的广泛传播。
55 9
[oeasy]python0033_先有操作系统还是先有编程语言_c语言是怎么来的
|
1天前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
10 4
|
8天前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
11 1
|
16天前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
17天前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】
|
28天前
|
Python
[oeasy]python036_数据类型有什么用_type_类型_int_str_查看帮助
本文回顾了Python中`ord()`和`chr()`函数的使用方法,强调了这两个函数互为逆运算:`ord()`通过字符找到对应的序号,`chr()`则通过序号找到对应的字符。文章详细解释了函数参数类型的重要性,即`ord()`需要字符串类型参数,而`chr()`需要整数类型参数。若参数类型错误,则会引发`TypeError`。此外,还介绍了如何使用`type()`函数查询参数类型,并通过示例展示了如何正确使用`ord()`和`chr()`进行转换。最后,强调了在函数调用时正确传递参数类型的重要性。
19 3
|
15天前
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
15 0
|
2月前
|
Python
[oeasy]python035_根据序号得到字符_chr函数_字符_character_
本文介绍了Python中的`ord()`和`chr()`函数。`ord()`函数通过字符找到对应的序号,而`chr()`函数则根据序号找到对应的字符。两者互为逆运算,可以相互转换。文章还探讨了单双引号在字符串中的作用,并解释了中文字符和emoji也有对应的序号。最后总结了`ord()`和`chr()`函数的特点,并提供了学习资源链接。
27 4
|
2月前
|
Unix 编译器 C语言
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ordinal_
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ord
21 0
|
3月前
|
存储 索引 Python
Python中序列类型 (Sequence Types)
【8月更文挑战第2天】
49 4