最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

[oeasy]python0040_換行與回車(chē)的不同_通用換行符_universal_newlines

2023-01-07 18:25 作者:oeasy  | 我要投稿

換行回車(chē)

回憶上次內(nèi)容

  • 區(qū)分概念

    • 主機(jī)旁邊 的 控制面板

    • 終端硬件基礎(chǔ)上的

    • 軟件殼子

    • 電傳打印機(jī)

    • 終端硬件

    • 主機(jī)網(wǎng)絡(luò)中

    • 最終的 端點(diǎn)

    • terminal終端

    • TeleTYpewriter

    • shell

    • Console 控制臺(tái)

  • 存儲(chǔ)文件 的 時(shí)候

    • 我 在文件里 打了回車(chē)\n

    • 系統(tǒng) 將0x0a存入字節(jié) 進(jìn)文件

    • 換行 自動(dòng)就有 回車(chē)功能 了嗎???

  • 回憶一下

    • 被忽略的 \r

\r

  • \r 也是一個(gè) ascii字符

    • 轉(zhuǎn)義序列

    • 轉(zhuǎn)義字符

    • \

    • \r

  • 什么是 轉(zhuǎn)義 呢?

    • 轉(zhuǎn)義轉(zhuǎn)義 轉(zhuǎn)化含義

    • 把原來(lái) 兩個(gè)字符 : \r

    • 轉(zhuǎn)化為 \r 這樣一個(gè)字符

  • 沒(méi)錯(cuò)!

    • \r1個(gè)ascii字符

  • 那么 \r 這一個(gè)字符

    • 對(duì)應(yīng)字節(jié) 是多少 呢?

字節(jié)狀態(tài)

  • \r 對(duì)應(yīng)的字節(jié)是

    • 0x0d

  • 這個(gè)0x0d

    • 好像 在安徒生童話中 出現(xiàn)過(guò)

安徒生童話

  • 文本觀看 模式下

    • 自動(dòng) 回車(chē)換行

  • 字節(jié)觀看 模式下

    • 0a

  • 0a前面是0d

    • (carriage-return)

    • (line-feed)

    • 0a換行

    • 0d回車(chē)

  • 貌似

    • 總是 成對(duì)出現(xiàn)的

    • 為什么 呢?

換行 和 回車(chē)

  • 換行

    • 水平 不動(dòng)

    • 垂直 向上喂紙

    • 對(duì)應(yīng) 字節(jié)0x0a

    • Line-Feed

    • 所以是 feed

  • 回車(chē)

    • 運(yùn)輸字符 的 裝置 (Carriage)

    • 回到行首

    • 垂直 不動(dòng)

    • 水平 到紙張左側(cè)

    • 對(duì)應(yīng) 字節(jié)0x0d

    • Carriage-Return

    • 可移動(dòng)的打印頭

    • 所以是 Return

  • 這是 個(gè)控制信號(hào)

    • 不過(guò)他倆 經(jīng)常 聯(lián)合使用

聯(lián)合使用

  • 當(dāng)CRLF 聯(lián)合使用時(shí)

    • 會(huì)將 打印紙張 上移一行

    • 打字位置 將到 新行的最左側(cè)

  • 也就是

    • 今天所理解 的 回車(chē)換行

  • 電傳打字機(jī)

    • 漸漸 退出了歷史舞臺(tái)

    • 當(dāng)初的紙張 變成了 今天的顯示器

    • 打字機(jī)的按鍵 也演變?yōu)?如今的鍵盤(pán)

  • 甚至 有了 操作系統(tǒng)

    • 操作系統(tǒng) 是 如何理解 回車(chē)換行 的呢?

操作系統(tǒng) Unix

  • 受限于

    • 內(nèi)存和軟盤(pán)空間 的 不足

  • 設(shè)計(jì)者 決定采用

    • 使用 \n 替代 \r\n

    • 默認(rèn) \n = \r\n

    • 個(gè)字符 來(lái)表示 換行回車(chē)

    • 個(gè)字符干個(gè)事

  • 類(lèi)unix(unix-like) 都是如此

    • 包括 BSD、Linux

unix 和 c 的羈絆

  • C語(yǔ)言

    • 既干 \n的活(換行)

    • 又干 \r的活(回車(chē))

    • 延續(xù)了 這個(gè)慣例

    • \n

  • 輸出中有 \n 的話

  • 如果只有\n

    • 下圖這樣的

    • 本應(yīng)是

  • 實(shí)際上是

    • 下圖這樣的

  • 是 回車(chē)加換行 的

  • 那還有

    • 純換行 不回車(chē)的效果 嗎?

純換行

  • 純換行效果可以用\v

  • \v 在ascii中的含義是VT

    • 垂直制表位

  • 序號(hào)是 11

Commodore64 和 mac

  • Commondore64

    • 使用 \r 代替 \r\n

    • 這 就有分歧

    • 一度 也曾 很流行

    • 同樣出于 節(jié)省空間的目的

    • Commodore64 影響了 mac

  • mac

    • 使用 \r 代替 \r\n

    • 甚至按鍵 都叫做return

    • 早期 也是

  • 后來(lái) 為了 和unix保持一致

    • 可能是因?yàn)?code>Mac用戶(hù)

    • 連接 unix-like的服務(wù)器

    • 換行不統(tǒng)一

    • 文件讀取會(huì)出現(xiàn)錯(cuò)誤

    • 需要用 ssh 命令

    • \r 修改為 \n

  • 流行的三大系統(tǒng)(類(lèi)unix、mac、win)

    • 兩個(gè)都是\n

  • 來(lái)來(lái)看看 微軟的windows

微軟

  • DOS系統(tǒng) 是兼容 CP/M 形成的

    • CP/M 使用 \r\n

  • 鍵盤(pán)上 印的名稱(chēng)是enter

    • 先 LineFeed 再 Return

    • 也是\r\n

    • 符號(hào)是?

    • 對(duì)應(yīng)字節(jié)是b"\x0d\x0a"

  • 后來(lái) 的 windows

    • 順著 DOS的慣例

  • 跨系統(tǒng) 瀏覽文檔的時(shí)候

    • 會(huì)有時(shí)候 ?多行 變成 一行

    • 有的會(huì)出現(xiàn) '0D', '^M' 之類(lèi)的亂碼

  • 不只是 windows記事本???

    • 而且 微軟office 等

    • 都曾有 這個(gè)困擾

  • win10 最新的記事本???

    • 已經(jīng) 優(yōu)化

python 解釋器的理解

  • 標(biāo)準(zhǔn) 輸入輸出流

    • 靠的是 終端屏幕

    • 靠的是 終端鍵盤(pán)

    • python 的 字符輸入

    • python 的 顯示輸出

  • 具體字符

    • 就會(huì)退回到本行開(kāi)頭

    • CarriageReturn

    • 就會(huì)換行

    • LineFeed

    • 顯示\n的時(shí)候

    • 顯示\r的時(shí)候

  • \n 寫(xiě)入文件的時(shí)候

    • 存儲(chǔ) 在 文件 中

    • 就會(huì)以 b"\x0a"的字節(jié)形式

  • \r 寫(xiě)入文件的時(shí)候

    • 存儲(chǔ) 在 文件 中

    • 就會(huì)以 b"\x0d"的字節(jié)形式

  • python3解釋器 基于 ?操作系統(tǒng)

    • 操作系統(tǒng) 基于 cpu架構(gòu)

  • 不管什么樣的操作系統(tǒng)、cpu 架構(gòu)

    • \n 換行

    • \r 退到行頭

    • 只要是 python解釋器

    • 對(duì)于\n、\r的解釋方式 就是統(tǒng)一的

  • 這種統(tǒng)一 是跨平臺(tái)的

    • 跨系統(tǒng)、跨cpu架構(gòu)的

總結(jié)

  • 對(duì)于換行和回車(chē)

  • 不同層面的理解

    • unix-like 做得對(duì)

    • 不管 在什么系統(tǒng)、什么架構(gòu) 上

    • 在我python上 是統(tǒng)一 的

    • unix-like

    • mac

    • windows

    • 帶頭簡(jiǎn)化 成 \n

    • 步調(diào)一致 就好

    • 為了 避免麻煩

    • 我和 unix-like一致

    • 原來(lái) 我用戶(hù)多

    • 定什么規(guī)矩 我說(shuō)了算

    • 惹了 很多問(wèn)題

    • 現(xiàn)在 我還是 隨大流 吧

    • 兩件事

    • 經(jīng)常 一起干

    • 但也可以 分別干

    • 電傳打字機(jī)

    • 不同操作系統(tǒng)

    • python 解釋器

  • 光說(shuō)不練假把式

    • 我能看看電傳打字機(jī)嗎???

  • 我們下次再看!??藍(lán)橋->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]python0040_換行與回車(chē)的不同_通用換行符_universal_newlines的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
彰武县| 吕梁市| 磴口县| 姚安县| 黄骅市| 松阳县| 繁昌县| 安丘市| 上栗县| 四平市| 隆尧县| 巩留县| 千阳县| 仲巴县| 延寿县| 阿拉尔市| 宁陕县| 兴安县| 乌兰县| 广河县| 广元市| 景谷| 扶风县| 衡水市| 兴义市| 涡阳县| 武山县| 资溪县| 秀山| 汕尾市| 榆树市| 临夏县| 栾城县| 新蔡县| 台北县| 临猗县| 民县| 东乌| 苍南县| 和平县| 遂溪县|