乐趣区

关于python:oeasypython0040换行与回车的不同通用换行符universalnewlines

换行回车

回顾上次内容

  • 辨别概念

    • terminal终端

      • 主机网络中

        • 最终的 端点
    • TeleTYpewriter

      • 电传打印机
      • 终端硬件
    • shell

      • 终端硬件根底上的

        • 软件壳子
    • Console 控制台

      • 主机旁边 的 控制面板
  • 存储文件 的 时候

    • 我 在文件里 打了回车\n
    • 零碎 将 0x0a 存入字节 进文件
    • 换行 主动 就有 回车性能 了吗?🤔
  • 回顾一下

    • 被疏忽的 \r

\r

  • \r 也是一个 ascii 字符

    • \

      • 转义字符
    • \r

      • 转义序列
  • 什么是 本义 呢?

    • 本义本义 转化含意
    • 把原来 两个字符 : \r
    • 转化为 \r 这样一个字符
  • 没错!

    • \r1ascii 字符
  • 那么 \r 这一个字符

    • 对应字节 是 多少 呢?

字节状态

  • \r 对应的字节是

    • 0x0d
  • 这个0x0d

    • 如同 在安徒生童话中 呈现过

安徒生童话

  • 文本 观看 模式下

    • 主动 回车换行
  • 字节 观看 模式下

    • 0a
  • 0a后面是0d

    • 0a 换行

      • (line-feed)
    • 0d 回车

      • (carriage-return)
  • 貌似

    • 总是 成对呈现的
    • 为什么 呢?

换行 和 回车

  • 换行

    • 对应 字节0x0a
    • Line-Feed

      • 程度 不动
      • 垂直 向上喂纸
    • 所以是 feed
  • 回车

    • 对应 字节0x0d
    • Carriage-Return

      • 垂直 不动
      • 程度 到纸张左侧
    • 可挪动的打印头

      • 运输字符 的 安装 (Carriage)
      • 回到行首
    • 所以是 Return
  • 这是 个管制信号

    • 不过他俩 常常 联结应用

联结应用

  • CRLF 联结应用时

    • 会将 打印纸张 上移一行
    • 打字地位 将 到 新行的最左侧
  • 也就是

    • 明天所了解 的 回车换行
  • 电传打字机

    • 慢慢 退出了历史舞台
    • 当初的纸张 变成了 明天的显示器
    • 打字机的按键 也演变为 现在的键盘
  • 甚至 有了 操作系统

    • 操作系统 是 如何了解 回车换行 的呢?

操作系统 Unix

  • 受限于

    • 内存和软盘空间 的 有余
  • 设计者 决定采纳

    • 个字符 来示意 换行回车

      • 应用 \n 代替 \r\n
      • 默认 \n = \r\n
    • 个字符干 个事
  • 类 unix(unix-like) 都是如此

    • 包含 BSD、Linux

unix 和 c 的羁绊

  • C 语言

    • 连续了 这个常规
    • \n

      • 既干 \n的活(换行)
      • 又干 \r的活(回车)
  • 输入中有 \n 的话
  • 如果只有\n

    • 本应是

      • 下图这样的
  • 实际上是

    • 下图这样的
  • 是 回车加换行 的
  • 那还有

    • 纯换行 不回车的成果 吗?

纯换行

  • 纯换行成果能够用\v
  • \v 在 ascii 中的含意是 VT

    • 垂直制表位
  • 序号是 11

Commodore64 和 mac

  • Commondore64

    • 一度 也曾 很风行
    • 同样出于 节俭空间的目标

      • 应用 \r 代替 \r\n
      • 这 就有 一致
    • Commodore64 影响了 mac
  • mac

    • 晚期 也是

      • 应用 \r 代替 \r\n
      • 甚至按键 都叫做 return
  • 起初 为了 和 unix 保持一致

    • \r 批改为 \n

      • 可能是因为 Mac 用户

        • 须要用 ssh 命令

          • 连贯 unix-like的服务器
          • 换行不对立
          • 文件读取会呈现谬误
  • 风行的三大零碎(类 unix、mac、win)

    • 两个都是\n
  • 来来看看 微软的 windows

微软

  • DOS 零碎 是兼容 CP/M 造成的

    • CP/M 应用 \r\n
  • 键盘上 印的名称是enter

    • 符号是

      • 先 LineFeed 再 Return
      • 也是\r\n
    • 对应字节是 b ”\x0d\x0a”
  • 起初 的 windows

    • 顺着 DOS的常规
  • 跨零碎 浏览文档的时候

    • 会有时候 多行 变成 一行
    • 有的会呈现 '0D', '^M' 之类的乱码
  • 不只是 windows 记事本🗒️

    • 而且 微软 office 等
    • 都曾有 这个困扰
  • win10 最新的记事本🗒️

    • 曾经 优化

python 解释器的了解

  • 规范 输入输出流

    • python 的 字符输出

      • 靠的是 终端键盘
    • python 的 显示输入

      • 靠的是 终端屏幕
  • 具体字符

    • 显示 \n 的时候

      • 就会换行
      • LineFeed
    • 显示 \r 的时候

      • 就会退回到本行结尾
      • CarriageReturn
  • \n 写入文件的时候

    • 就会以 b"\x0a"的字节模式

      • 存储 在 文件 中
  • \r 写入文件的时候

    • 就会以 b"\x0d"的字节模式

      • 存储 在 文件 中
  • python3 解释器 基于 操作系统

    • 操作系统 基于 cpu 架构
  • 不论什么样的 操作系统cpu 架构

    • 只有是 python 解释器
    • 对于 \n\r 的解释形式 就是对立的

      • \n 换行
      • \r 退到行头
  • 这种对立 是跨平台的

    • 跨零碎、跨 cpu 架构的

总结

  • 对于换行和回车
  • 不同层面的了解

    • 电传打字机

      • 两件事
      • 常常 一起干
      • 但也能够 别离干
    • 不同操作系统

      • unix-like

        • 带头简化 成 \n
        • 各自为政 就好
      • mac

        • 为了 防止麻烦
        • 我和 unix-like 统一
      • windows

        • 原来 我用户多
        • 定什么规矩 我说了算
        • 惹了 很多问题
        • 当初 我还是 随大流 吧
    • python 解释器

      • unix-like 做得对
      • 不论 在什么零碎、什么架构 上
      • 在我 python 上 是对立 的
  • 光说不练假把式

    • 我能看看电传打字机吗?🤔
  • 咱们下次再看!👋蓝桥 ->https://www.lanqiao.cn/course…
  • github->https://github.com/overmind19…
  • gitee->https://gitee.com/overmind198…
  • 视频 ->https://www.bilibili.com/vide… 作者:oeasy
退出移动版