[oeasy]python0040_换行与回车的不同_通用换行符_universal_newlines

简介: [oeasy]python0040_换行与回车的不同_通用换行符_universal_newlines

换行回车

回忆上次内容

  • 区分概念
  • 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/courses/3584
  • github->https://github.com/overmind1980/oeasy-python-tutorial
  • gitee->https://gitee.com/overmind1980/oeasypython
  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy
目录
打赏
0
0
0
0
9
分享
相关文章
[oeasy]python062_在python中完成输入和输出_input_print
本文介绍了在Python中使用`input()`和`print()`函数完成输入和输出操作的基础知识。通过编写简单的程序,如问候用户和统计苹果数量,演示了如何添加提示信息、处理用户输入并输出结果。同时,回顾了上一次课程内容,包括`input`函数的参数和提示词的使用。文中还展示了如何在vim编辑器中编写和运行Python代码,并对vim和shell的基本操作进行了总结。最后提供了相关学习资源链接,方便读者进一步学习。
125 66
[oeasy]python065python报错怎么办_try_试着来_except_发现异常
本文介绍了Python中处理异常的基本方法,重点讲解了`try`和`except`的用法。通过一个计算苹果重量的小程序示例,展示了如何捕获用户输入错误并进行处理。主要内容包括: 1. **回顾上次内容**:简要回顾了Shell环境、Python3游乐场和Vim编辑器的使用。 2. **编写程序**:编写了一个简单的程序来计算苹果的总重量,但发现由于输入类型问题导致结果错误。 3. **调试与修正**:通过调试发现输入函数返回的是字符串类型,需要将其转换为整数类型才能正确计算。
51 32
[oeasy]python070_如何导入模块_导入模块的作用_hello_dunder_双下划线
本文介绍了如何在Python中导入模块及其作用,重点讲解了`__hello__`模块的导入与使用。通过`import`命令可以将外部模块引入当前环境,增强代码功能。例如,导入`__hello__`模块后可输出“Hello world!”。此外,还演示了如何使用`help()`和`dir()`函数查询模块信息,并展示了导入多个模块的方法。最后,通过一个实例,介绍了如何利用`jieba`、`WordCloud`和`matplotlib`模块生成词云图。总结来说,模块是封装好的功能部件,能够简化编程任务并提高效率。未来将探讨如何创建自定义模块。
23 8
[oeasy]python066_如何捕获多个异常_try_否则_else_exception
本文介绍了Python中`try...except...else`结构的使用方法。主要内容包括: 1. **回顾上次内容**:简要复习了`try`和`except`的基本用法,强调了异常处理的重要性。 2. **详细解释**: - `try`块用于尝试执行代码,一旦发现错误会立即终止并跳转到`except`块。 - `except`块用于捕获特定类型的异常,并进行相应的处理。 - `else`块在没有异常时执行,是可选的。 3. **示例代码**:通过具体例子展示了如何捕获不同类型的异常(如`ValueError`和`ZeroDivisionError`),并解释了异常处理
42 24
[oeasy]python068_异常处理之后做些什么_try语句的完全体_最终_finally
介绍了 Python 中 `try` 语句的完全体,包括 `try`、`except`、`else` 和 `finally` 子句的使用。通过实例展示了如何捕获异常并输出详细的错误信息,如文件名和行号。特别强调了 `finally` 子句的作用,无论是否发生异常,`finally` 都会执行,常用于清理操作。最后总结了 `try` 语句的四个部分及其应用场景,并简要提及了 Python 社区的决策机制。 #try #except #else #finally
16 1
[oeasy]python064_命令行工作流的总结_vim_shell_python
本文总结了命令行工作流中的关键工具和操作,包括vim、shell和Python。主要内容如下: 1. **上次回顾**:完成了输入输出的代码编写,并再次练习了vim的使用。 2. **shell基础**:介绍了shell环境及其基本命令,如`pwd`、`cd`、`ll -l`等。 3. **Python游乐场**:通过`python3`命令进入Python交互环境,可以进行简单计算和函数调用,常用函数有`help`、`ord`、`chr`等。 4. **vim编辑器**:详细讲解了vim的三种模式(正常模式、插入模式、底行命令模式)及其切换方法,以及常用的底行命令如`:w`、`:q`、`
83 15
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
20 0
[oeasy]python059变量命名有什么规则_惯用法_蛇形命名法_name_convention_snake
本文探讨了Python中变量命名的几种常见方式,包括汉语拼音变量名、蛇形命名法(snake_case)和驼峰命名法(CamelCase)。回顾上次内容,我们主要讨论了使用下划线替代空格以提高代码可读性。实际编程中,当变量名由多个单词组成时,合理的命名惯例变得尤为重要。
114 9
[oeasy]python058_一句话让python崩了
本文介绍了如何通过重新赋值`__builtins__`使Python环境崩溃,并探讨了下划线的来历及其在编程中的作用。文章回顾了上次内容,展示了覆盖内建模块导致系统崩溃的过程,解释了恢复方法,以及PEP 8规范中关于空格使用的建议。最后,文章总结了下划线在变量定义和提高代码可读性方面的重要性,并简述了其从打字机时代到计算机时代的演变。
43 10
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
24 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等