[oeasy]python0043_八进制_oct_octal_october_octave

八进制(oct)

回忆上次内容

  • 什么是 转义?

    • 转义转义 转化含义
    • \ 是 转义字符
    • \n\r是 转义序列
  • 还有什么 转义序列 吗?

    • \a是 响铃
    • \b 退格键
    • \t 水平制表符 tab键
    • \v\f 实现喂纸不回车
  • 通过 16进制数值 转义

    • \xhh
    • 输出 (hh)16进制对应的ascii字符
  • 如果我们不输入x

    • 会发生什么呢?

图片描述

  • 为什么会输出 S 呢?

查询文档

[oeasy]python0043_八进制_oct_octal_october_octave_第1张图片

  • 查询主题 STRINGS

查询结果

  • 表示方法

    • \xhh 是 16进制 表示方法
    • \ooo 是 8进制 表示方法

[oeasy]python0043_八进制_oct_octal_october_octave_第2张图片

  • 去试试

从 16进制 到 8进制

[oeasy]python0043_八进制_oct_octal_october_octave_第3张图片

  • 16进制表示法 没有问题
  • 那 8进制 呢?
  • 有没有 求八进制值的函数 呢?

    • 就像 hex 、 bin

oct函数手册

[oeasy]python0043_八进制_oct_octal_october_octave_第4张图片

  • oct 就是 求八进制值的函数

[oeasy]python0043_八进制_oct_octal_october_octave_第5张图片

  • 返回的 是

    • 八进制形式的 字符串

具体表示

[oeasy]python0043_八进制_oct_octal_october_octave_第6张图片

  • 确实可以

    • 用 3位 八进制数 表示字符
    • \141
  • 123 为什么 对应 S 呢?

查询帮助

  • S 的序号 是83
  • 83 对应的 八进制数 是

    • 0o123

      - 0 代表这是个 数字
      - o 代表 oct
      • 八进制

[oeasy]python0043_八进制_oct_octal_october_octave_第7张图片

  • 为什么 oct 代表八进制呢?

词根溯源

  • oct来源

[oeasy]python0043_八进制_oct_octal_october_octave_第8张图片

  • eight 和 oct 同源
  • 就如同

    • ten 和 decimal
    • two 和 binary

octopus

  • 八只脚 的 章鱼

[oeasy]python0043_八进制_oct_octal_october_octave_第9张图片

  • 章鱼也叫八爪鱼(octopus)

octave

  • 八度音阶

    • 俗称的 八度音
    • 高八度
    • 低八度

[oeasy]python0043_八进制_oct_octal_october_octave_第10张图片

  • octave

october

  • october 是

    • 罗慕路斯(Romulus)历法中的

      • 八月
    • 罗慕路斯 是 在七个山丘上

      • 创建罗马 的 弟弟

[oeasy]python0043_八进制_oct_octal_october_octave_第11张图片

  • 有什么证据吗?

连续的月份

月份 数字 词根 单词
7 seven septem- september
8 eight octo- october
9 nine novem- november
10 ten(decimal) decem- december

[oeasy]python0043_八进制_oct_octal_october_octave_第12张图片

  • 只有 304天

    • 剩下的61天 太冷了
    • 也没农活
    • 不 需要记忆

后来的历法

  • 庞贝留斯在年底 加了两个月

    • Ianuarius
    • Februarius

[oeasy]python0043_八进制_oct_octal_october_octave_第13张图片

  • 仔细看 首行的 月份

儒略历

  • 凯撒历

    • Julian Calendar

[oeasy]python0043_八进制_oct_octal_october_octave_第14张图片

  • 凯撒 把 新加的两个月 放到年初

    • 一月大月 31天
    • 二月小月 28天
  • 后人把

    • Quintilis 改成 July

      • 纪念 Julius Caesar

        • 尤里乌斯·凯撒
    • Sextilis 改成 Augustus

      • 纪念 Octavius Augustus

        • 屋大维·奥古斯都
  • 屋大维 和 八

    • 还真的是 有缘

八进制字符

  • 可以观察到

    • 0o41 对应字符 !
    • \041\41 都可以

      • 表示 这个字符 !

[oeasy]python0043_八进制_oct_octal_october_octave_第15张图片

  • 那么

    • 问题来了
  • "\123"究竟

    • 是 "\12" + "3" 呢?
    • 还是 "\123" 呢?

查询

  • 以 "\n" 为切入点

[oeasy]python0043_八进制_oct_octal_october_octave_第16张图片

  • (0A)16进制
  • (10)10进制

[oeasy]python0043_八进制_oct_octal_october_octave_第17张图片

  • (12)8进制

    • 想先把 前两个字符(01)

      • 当做一个整体 来转义
    • 而不是 以前三个(012)

      • 来 转义 呢?

歧义

  • 如果 直接输出\121

    • 结果是 Q
    • 0o121 对应着 0x51

[oeasy]python0043_八进制_oct_octal_october_octave_第18张图片

  • 如果 直接输出\12

    • 可以输出换行符
  • 如果我就想

    • 用 8进制 输出换行符
    • 并且 后面 加一个字符1 呢?

[oeasy]python0043_八进制_oct_octal_october_octave_第19张图片

  • 明确 是 两个字符

还有一种方法

  • 给 前面的\12

    • 前面补0
    • 修改为\012

[oeasy]python0043_八进制_oct_octal_october_octave_第20张图片

  • 两种方法 都可以

    • 不过 第二种

      • 去除歧义的能力 更强
  • 回忆一下 进制

总结

  • 这次研究了

    • 通过 八进制数值 转义

      • \ooo
      • 把(ooo)8进制对应的ascii字符输出
  • 转义序列

    • \n\t 是 转义序列
    • \xhh 也是 转义序列
    • \ooo 还是 转义序列

[oeasy]python0043_八进制_oct_octal_october_octave_第21张图片

你可能感兴趣的:(python)