五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
伊春市| 侯马市| 岫岩| 滕州市| 隆林| 易门县| 新疆| 喀喇沁旗| 昌乐县| 德令哈市| 裕民县| 锡林郭勒盟| 天津市| 依兰县| 和政县| 宜良县| 获嘉县| 和田市| 孟村| 车险| 庄河市| 景东| 淮安市| 新绛县| 彭山县| 镇江市| 阳春市| 克东县| 阳原县| 格尔木市| 兴安盟| 准格尔旗| 阿巴嘎旗| 东港市| 西城区| 五寨县| 剑川县| 汪清县| 沁阳市| 泰来县| 泽库县|