转义序列

回忆上次内容

  • 上次回顾了5bit-Baudot博多码的来历
  • 从 莫尔斯码 到 博多码
    • 原来

      • 人 来 收发电报
    • 现在
      • 机器 来 收发电报
    • 输入方式
      • 从 电键
      • 改成 键盘
    • 输出方式
      • 从 纸带
      • 变成 打印纸张
  • 后来
    • 电传打字机ASR-33
    • 成为 初代 经典终端
  • 除了 \n\r 之外
    • 还有什么 特殊字符 吗?

搜索 ASCII

  • 找到 ascii的定义

  • 还有 好多

    • 类似于\n\r的 特殊字符

动手试试

  • 总结一下

    • 各种 转义字符

转义总结

  • \a

    • 响铃 ␇ (bell)
    • 电传打字机 回车前 都会预警响铛
      • 避免 回车过程中 误打字符
    • 可以
      • 手动发送编码

        • 敲一下 这个铃铛
    • 后来
      • 是让 蜂鸣器 鸣叫
    • 现在
      • 终端 或者 服务器

        • 一般没有 蜂鸣器
  • \b
    • BackSpace
    • 退回一格
  • \t
    • table
    • 水平制表符
    • Horizontal Tab
    • 效果是空四个格
  • \v\f
    • 效果就是

      • 纯喂纸 不回车

黑暗森林

  • 再看 ascii码表

    • 黑暗森林

      • 好像也没有 那么神秘
      • 已经 有些部分 展示出来 了

  • 为什么 只能\n

    • 难道 /n 不行么?
    • 动手 试试!

实验

  • 确实 不行!

  • ascii的定义 是 源头
  • python 对于这些字符的解释
    • 是跟 c语言 学的
  • 这些特殊的东西
    • 都和 \反斜杠

      • 这个字符相关联
  • 为什么呢?

反斜杠

  • 为什么管 这个方向的斜杠

    • 反斜杠 呢?
  • 斜杠是 成对儿的
    • 有 斜杠

      • slash
      • /
    • 就有 反斜杠
      • backslash
      • \

  • 我们一般都是 利手

    • 从上往下砍

      • 都是 右上到左下
      • slash 很顺手
      • slash 这个词本身就是砍
      • 用鞭子或者锋利的刃来砍
        • 暴力的砍
        • 主要是对于树来说的
      • 顺手的就是 slash
  • 反过来不顺手的就是
    • backslash
    • 对应的是不正常的
    • 转化含义的

转义字符

  • 转义字符

    • escape code
    • 有 逆向思维的感觉
    • \自身 无法
      • 构成一个 具体的字符
    • 而是 要和后面的字符 一起
      • 构成一个 转义字符

  • 转义用的 是

    • 斜杠
    • \
    • backslash

转义 Escape

  • \反斜杠(backslash)

    • 加了其他字符 之后

      • 字符 就不是 原来的字面意思 了
  • 转义么
    • 转义转义
    • 转化含义

  • 所以\反斜杠 这个字符

    • 也叫做转义字符

      • Escape character
  • \b 这两个字符的序列
    • 算是一个转义序列 Escape sequence

      • \ 这个转义字符
      • 会让 \b转义序列
      • 转义为 Backspace
        • 退格这1个字符
    • 这个退格 是
      • 转义序列\b转化含义之后的 含义
    • 这个 转化后的 含义
      • 对应 1个 ascii字符
  • 可以 在键盘
    • 找到 这个字符 吗?

键盘

  • 就是 \b

    • 键盘上的退格

      • 对应的ascii值 就是 8

  • 转义的本质 是什么 呢?

转义本质

  • 转义转义转换含义!!!

    • \n本来是 两个字符
    • 转义字符\反斜线
      • 把自己 和后面的字符n 一起
      • 构成了 转义序列\n
    • 转换含义 成为 一个的含义
  • 原来的字符是\n
    • 转成新的含义为换行

  • \r就不是\r

    • \r是一个整体
    • 对应一个字符
    • 整个对应 ascii 中
      • 序号13的字符

试试

  • 就像 a 对应 65 一样

    • \b 对应 8
  • \b 在 python3 的作用
    • 退格
    • 你发现了 12\ba 变成 1a 了么?

  • \b\x08chr(8) 是 同一个字符
  • 但是这个\x08
    • 是什么意思?

继续转义

  • 这个x08 刚好是

    • 退格对应字符的 ascii值
    • 退格 对应的值是 8

  • 但这个 8 是

    • (0x08)16进制
    • 但是这个 x 是什么意思来着?

  • x 的意思是 hexadecimal

    • hex 就是 大着舌头说six
    • 后面 216进制数
    • 刚好 对应 一个字节

总结

  • 什么是 转义?

    • 转义转义 转化含义
    • \ 是 转义字符
    • \n\r是 转义序列
  • 还有什么 转义序列 吗?
    • \a是 响铃
    • \b 退格键
    • \t 水平制表符 tab键
    • \v\f 实现喂纸不回车
  • 通过 16进制数值 转义
    • \xhh
    • 输出 (hh)16进制对应的ascii字符
  • 如果我们不输入x
    • 会发生什么呢?

  • 为什么会输出 S 呢?
  • 我们下次再说!
  • 蓝桥->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]python0041_ 转义字符_转义序列_escape_序列_sequence的更多相关文章

  1. C++ Primer笔记1_转义字符_标准库类型string_标准库类型vector

    1.转义字符 一般有两种方式: \x后紧跟1个或多个十六进制数字.或\后紧跟1.2.3个八进制数字,当中数字部分是字符相应的数值. #include <iostream> using na ...

  2. 【等待事件】序列等待事件总结(enq: SQ - contention、row cache lock、DFS lock handle和enq: SV - contention)

    [等待事件]序列等待事件总结(enq: SQ - contention.row cache lock.DFS lock handle和enq: SV -  contention) 1  BLOG文档结 ...

  3. Scala _ 下划线

    1.引入包中的全部方法 import math._ //引入包中所有方法,与java中的*类似 2.表示集合元素 val a = (1 to 10).filter(_%2==0).map(_*2) / ...

  4. 已知n个数的入栈序列,求一共有多少种出栈序列 (卡特兰数)

    已知\(n\)个数的入栈序列,求一共有多少种出栈序列 这个经典问题有两种解法. 解法一: 设\(f(x)\)为\(x\)个数入栈后,再全部出栈的序列数量 假设我们有\(4\)个数\(a,b,c,d\) ...

  5. C#语法文本字面量

    C#语法文本字面量 在日常生活中,文本用来表示除了数字以外的内容.例如有一个叫“比尔”的人,他的职位为“科长”.那么,“比尔”和“科长”都可以称为文本.在计算机里,现实世界中的文本通常被称为字符和字符 ...

  6. mysql基本语法

    MySql一些基本语法      3.3.5 直接在数据库目录中创建或删除 用上述方法创建数据库,只是MySQL数据目录下面创建一个与数据库同名目录,同样删除数据库是把这个目录删除. 所以,你可以直接 ...

  7. 20160201.CCPP体系详解(0011天)

    内容概要:C语言基本数据类型及运算题库(含答案) 第二章 基本数据类型及运算 一.选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是[C]. A) x1=26.8%3; B) 1+2=x2 ...

  8. 理解CSV格式规范(解析CSV必备)

    什么是CSV逗号分隔值(Comma-Separated Values,CSV),其文件以纯文本形式存储表格数据(数字和文本),文件的每一行都是一个数据记录.每个记录由一个或多个字段组成,用逗号分隔.使 ...

  9. ORACLE 自动增长通过封装函数,方便调用

    好的编程习惯,是一个很有必要的过程.好的编程习惯,可以因人而异,但是简单地.基本地代码级别的就那些:写注释.合理的缩进.换行.变量命名等. 对我们程序员来说,大部分时间都对着电脑,在对着电脑的大部分时 ...

  10. C#高级编程笔记 Day 1, 2016年8月 30日 名词定义

    1.C# 中的命名空间 namespace,我觉得和Java中的package 差不多,相当于一个"包" 一样. 2.修饰符 static 修饰方法表示方法不能在类的实例化上执行, ...

随机推荐

  1. Stemciljs学习之组件生命周期

    组件有许多生命周期方法,可用于了解组件何时"将"和"执行"加载.更新和呈现.可以将这些方法添加到组件中,以便在正确的时间挂接到操作中. 在组件类中实现以下方法之 ...

  2. 利用Django实现文件上传

    一.form表单的形式上传文件 1.路由 urlpatterns = [ path("upload/", views.UploadView.as_view(),) ] 2.视图 f ...

  3. C#简易商城收银系统v1.1简单工厂实现(2-2)

    C#简易商城收银系统v1.1简单工厂实现(2-2) 当初: C#简易商城收银系统v1.0 现在: 用之前的工厂模式对商城收银系统v1.0进行升级 可以参考之前的 C#简易商城收银系统v1.0 随笔  ...

  4. java stream 简单函数

    写在前面 本文为笔者学习的一些心得,如有问题,评论请轻喷 本文分为以下部分: 中间操作 终止操作 归纳 中间操作 对 list 进行操作,返回一个新的 list 主要函数 作用 filter 过滤操作 ...

  5. Docker Build Cache 缓存清理

    Docker 18.09 引入了 BuildKit ,提升了构建过程的性能.安全.存储管理等能力. docker system df 命令,类似于 Linux上的 df 命令,用于查看 Docker ...

  6. java中判断String类型为空和null的方法

    1.判断一个String类型的变量是否为空(即长度为0)或者为null 在Java中,判断一个String类型的变量是否为空(即长度为0)或者为null,通常需要使用两个条件语句来进行检查.这是因为n ...

  7. 拼多多面试:Netty如何解决粘包问题?

    粘包和拆包问题也叫做粘包和半包问题,它是指在数据传输时,接收方未能正常读取到一条完整数据的情况(只读取了部分数据,或多读取到了另一条数据的情况)就叫做粘包或拆包问题. 从严格意义上来说,粘包问题和拆包 ...

  8. echarts做饼图

    今天记录下echarts做饼图 父组件 <el-card style="height:600px ;margin-top:20px" v-loading="card ...

  9. Easysearch Chart 0.2.0都有哪些变化

    Easysearch Chart 包更新了,让我们来看看都有哪些变化: Docker 镜像升级 Service 名称调整,支持 NodePort 模式部署 现在让我们用 NodePort 模式部署一下 ...

  10. 打开 gpedit.msc 组策略时弹出错误提示,"找不到资源 string.Advanced_EnableSSL3Fallback ”。

    原因是升级到 IE9 或者 IE 11 语言包没有及时更新. 解决方案一:用360再打补丁. 方案二:未尝试. https://www.microsoft.com/en-us/download/con ...