字体样式

回忆上次内容

  • m 可以改变字体样式

    • 0-10 之间设置的都是字体效果

  • 0 复原
  • 1 变亮
  • 2 变暗

  • 从3到10 又是什么效果 呢??
  • 真的可以blink闪烁吗?

3m

  • 3m 实现斜体字的效果

4m

  • 4m 对应着下划线

控制范围

  • 通过控制字符串的位置

    • 可以控制效果范围
print("\033[0mthis is an \033[4manchor\033[0m")
print("\033[0mthis is \033[4man anchor\033[0m")
print("\033[0mthis is\033[4m an anchor\033[0m")
  • 标准输出流中的 所有文字

    • 都可以 控制样式
  • 属性可以叠加吗?

属性叠加

  • 先变亮(\033[1m)、再加下划线(\033[4m)
  • 先加下划线(\033[4m)、再变亮(\033[1m)
  • 效果一样

  • 可以 交换次序

  • 变暗 也可以 与下划线叠加
  • 可以 简化控制序列 吗?

简化写法

  • 合并同类项

    • 把需要加的标记 进行汇总
    • 用;做为分割符

  • 这套规则 来自于什么 呢?

VT100

  • 规则来自于 终端一代神机

    • DEC 的 VT100
    • 下图为 VT100 说明书

  • 很多东西 都可以 从VT100看出端倪

    • 八进制转义
    • ESC
    • 分号分隔符
  • 4m是 下划线
  • 5m呢?

继续尝试

  • 5m、6m 本应是

    • 快闪、慢闪

  • 但是 现在看起来 效果是一样的

    • 可以 编程实现 快闪效果吗?
    • 动手试试

快闪

  • 编码
import time
for i in range(1000):
if i % 2 == 0:
print("\roeasy",end="")
else:
print("\r ",end="")
time.sleep(0.2)
  • 再往后看看

7m

  • 7m 是反相

    • 把前景和背景色交换

  • 黑变白
  • 白变黑

  • 颠倒黑白

8m

  • 8m对应隐藏

  • 隐藏比较复杂

    • 因为完全看不见了

9m

  • 9m对应中划线

  • 划掉

  • 不喜欢的统统划掉

字体设置

  • 10-19 定义为字体设置

    • 但是 实际上 没有效果

20-29

  • 20-29

    • 20 设置字体
    • 21-29部分和1-9一一对应
      • 是取消相应的效果

  • 1是变亮

    • 21 是取消变亮
  • 2是变暗
    • 22 是取消变暗
  • 23-29
    • 取消 3-9 的字体效果
  • 0 是全部取消

效果

  • 0m 确实可以清除此后所有的样式

  • 29m 可以专门地清除

    • 此后的 中划线样式
  • 但如果一开始的时候
    • 既有中划线样式
    • 又高亮
    • 会如何呢?

专门清除

  • 注意后面hate you 部分

    • 取消了下划线样式
    • 但没有取消高亮样式

  • 除非 控制序列的 新要求

    • 否则 标准输出流
    • 会一直保持 各种字体样式
  • 那么29m以后
    • 控制的又是什么呢?

29m以后

  • 居然好像真的是颜色设置了

    • 前景色
    • 背景色

  • 可以搞点 好玩的 东西啦!!!

总结

  • m 可以改变字体样式

    • 0-9 之间设置的都是字体效果
    • 0 重置为默认
    • 1 变亮
    • 2 变暗
    • 3 斜体
    • 4 下划线
    • 5 慢闪
    • 6 快闪
    • 7 前景背景互换
    • 8 隐藏
    • 9 中划线
  • 叠加效果
    • \33[1;3moeasy
    • ;分割
  • 取消效果
    • 21 取消 1
    • 22 取消 2
    • 23 取消 3
    • 一直到 29
    • 0 是全部取消,回到默认

  • 最后发现

    • 真的可以 设置颜色???
  • 我们下次再说!
  • 蓝桥->https://www.lanqiao.cn/courses/3584
  • github->https://github.com/overmind1980/oeasy-python-tutorial
  • gitee->https://gitee.com/overmind1980/oeasypython
  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy

[oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果的更多相关文章

  1. WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法。

    原文:WPF编程,TextBlock中的文字修饰线(上划线,中划线,基线与下划线)的使用方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_4330 ...

  2. WPF中的文字修饰——上划线,中划线,基线与下划线

    原文:WPF中的文字修饰——上划线,中划线,基线与下划线 我们知道,文字的修饰包括:空心字.立体字.划线字.阴影字.加粗.倾斜等.这里只说划线字的修饰方式,按划线的位置,我们可将之分为:上划线.中划线 ...

  3. UILabel,文字添加下划线,中划线

    //显示下划线 //中划线 //        NSDictionary *attribtDic = @{NSStrikethroughStyleAttributeName: [NSNumber nu ...

  4. 多种方法在Markdown加入上划线、中划线、下划线

    上划线和下划线不是Markdown自身语法,因此需要一点摸索,特将结果记录于此 1.中划线 中划线是markdown自身语法,实现起来很简单: ~~中划线~~ 实现的效果如下: 中划线 2.下划线 2 ...

  5. css中的字体样式及元素样式

    css中的字体样式一般包含有就9中,常见的有7种.这7种依次为: 1.字体样式:font-family: 2.字体大小:font-size: 3.字体加粗:font-weight: 4.字体斜体:fo ...

  6. css字体样式(Font Style),属性

    css字体样式(Font Style),属性   css字体样式(Font Style)是网页中不可或缺的样式属性之一,有了字体样式,我们的网页才能变得更加美观,因此字体样式属性也就成为了每一位设计者 ...

  7. css 字体样式设置

    css字体样式(Font Style),属性 时间:2014-05-08 21:49 来源:我爱学习网 | 作者:我爱学习网 | 本文已影响 68353 人   css字体样式(Font Style) ...

  8. golang _下划线占位符代替需要释放的资源的问题

    golang中_有两种作用,一种用在import中,比如这样 import _ "github.com/go-sql-driver/mysql" 表示并不需要导入整个包,只是执行这 ...

  9. Scala中_(下划线)的常见用法

    Scala中_(下划线)的常见用法 地址:https://www.jianshu.com/p/0497583ec538

  10. _ 下划线 vue mixins 混入 变量前有下划线 变量不起作用

    _ 下划线 vue mixins 混入 变量前有下划线 变量不起作用

随机推荐

  1. Laravel框架中数据库分表时Model使用方法

    前言: 0.最近在使用laravel框架做MySQL分表的时候经过实践和踩坑,总结了以下3种可行的分表方法,亲测可用. 1.本人公司做的是SaaS系统,以店铺为维度.店铺id(shop_id) 命名规 ...

  2. CAD 标注镜像

    在代码里用镜像矩阵对标注进行镜像的时候,标注上面的文字也会被镜像掉,我在网上得到一个方法,可以解决这个问题.https://forums.autodesk.com/t5/net/dbtext-and- ...

  3. Vue cli之路由router

    一.安装路由 Vue-router用于提供给vue项目在开发中用于绑定url和组件页面的关系的核心插件. 默认情况下,vue没有提供路由的功能,所以我们使用vue-router,并需要在项目根目录. ...

  4. Java并发编程(一)JUC同步类

    JUC 是学习 Java 并发编程的小伙伴不可避免的一个 pkg,JUC提供了对并发编程的底层支持,比如我们熟悉的线程池.MQ.线程同步... 都有JUC的影子,下面我们一起来看看JUC下比较重要的几 ...

  5. dubbo~javax.validation和jakarta.validation的介绍与排雷

    javax.validation和jakarta.validation都是用于Java中进行数据验证(validation)的相关API,它们提供了一套标准的验证框架,用于验证Java对象的属性是否符 ...

  6. SemanticKernel:添加插件

    SemanticKernel介绍 Semantic Kernel是一个SDK,它将OpenAI.Azure OpenAI和Hugging Face等大型语言模型(LLMs)与C#.Python和Jav ...

  7. LeetCode 690. Employee Importance 员工的重要性(C++/Java)

    题目: You are given a data structure of employee information, which includes the employee's unique id, ...

  8. INFINI Labs 产品更新 | Easysearch 新增跨集群复制 (CCR)、支持快照生命周期管理 (SLM) 功能等

    INFINI Labs 产品重量级更新!!!本次更新了很多亮点功能,如 Easysearch 新增跨集群复制 (CCR).支持快照生命周期管理 (SLM) 功能等:支持多集群.跨版本的搜索基础设施统一 ...

  9. 使用 INFINI Console 实现 Elasticsearch 的增量数据迁移

    功能介绍 # 在 INFINI Console 1.3.0 版本里,数据迁移功能增加了对增量迁移的支持.这篇文章将会介绍增量迁移的具体使用方法和实现原理. 场景介绍 # 以常见的日志场景为例,假设 A ...

  10. cent os docker yum源

    国外镜像一般很难访问,建议配置阿里云镜像.yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/ ...