[oeasy]python0079_控制序列_光標位置設置_ESC_逃逸字符_CSI
光標位置
回憶上次內(nèi)容
上次我們研究的比較雜
類型轉(zhuǎn)化
進制轉(zhuǎn)化
捕獲異常
版本控制
生成幫助文檔
變量的常用類型
變量的生命周期控制
數(shù)據(jù)類型主要研究了兩個
int
str
字符串
整型數(shù)字
字符串型 和 整型數(shù)字型變量
是可以相互轉(zhuǎn)化的
加法運算邏輯 會根據(jù)操作變量的不同 而不同
整型變量的加法 是真的加
字符串的加法 是字符串拼接
字符串中有一些轉(zhuǎn)義字符
\n
\r
\t
都是什么意思來著??
還有什么沒見過的轉(zhuǎn)字符嗎????
回憶轉(zhuǎn)義
轉(zhuǎn)義轉(zhuǎn)義
轉(zhuǎn)化含義

下圖中hello的o
為什么消失了?

\b
是一個字符代表的含義是
退格
hello中的o
被退格符刪除了
如果不用chr
想要直接打出上面的效果
應該怎么辦呢?
直接加起來

想要用\b替換chr(8)
程序報錯了

續(xù)行符(
\
)之后有不期待的字符
想要獲得同樣的字符
應該怎么辦呢?
反斜杠的作用
\
反斜杠(backslash) 在程序里面的作用是續(xù)行符
line continuation character
當把
\
反斜杠(backslash)放入雙引號里面之后在字符串中有特殊的含義
可以和后面的字符一起
構(gòu)成轉(zhuǎn)義序列
escape sequence
escape character
\
反斜杠 就是 轉(zhuǎn)義字符轉(zhuǎn)義字符

在下圖中
是由兩部分組成
escape character
\ 轉(zhuǎn)義字符
b 具體轉(zhuǎn)到的含義
escape sequence
\b 就是轉(zhuǎn)義序列
\b 這個轉(zhuǎn)義序列

這兩個字符的序列組合起來的意思
就是退格
backspace
還有什么轉(zhuǎn)義字符嗎?
換行
\n 這個轉(zhuǎn)義序列的意思是
line feed
換行

\r 這個轉(zhuǎn)義序列的意思是
carriage return
回車

| 轉(zhuǎn)義序列 | 中文含義 | 英文含義 | ascii序號 |
| --- | --- | --- | --- |
| \b | 退格 | backspace | 8 |
| \t | 制表鍵 | tab | 9 |
| \n | 換行 | line feed | 10 |
| \r | 回車 | carriage | 13 |
可以看到更多的轉(zhuǎn)義字符嗎?
轉(zhuǎn)義 Escape
回憶
\xhh
\ooo
可以用八進制
用十六進制
來表示轉(zhuǎn)義字符

這就是全部轉(zhuǎn)義字符了嗎?
控制字符
轉(zhuǎn)義字符
具有一定的控制作用
也被叫做 控制字符
control characters
以下就是
ascii中的全部轉(zhuǎn)義字符

居然有轉(zhuǎn)義序列
轉(zhuǎn)義之后的的含義是 escape
搜索結(jié)果
來回顧一下??
\
是轉(zhuǎn)義字符要和后面的字符一起構(gòu)成轉(zhuǎn)義序列
\e
是轉(zhuǎn)義序列escape
也被稱作 逃逸字符

這 逃逸字符 escape
逃逸指的是什么意思呢?
我們來試試
動手實驗
實踐證明
直接使用\e是不行的

但是可以使用
用 \033 代替 \e
\e 的 8進制形式

這樣可以控制輸出字符串的位置?。?!
理解Escape
真的可以逃逸出 當前輸出序列
控制定位 再輸出
從正常的輸出流
逃逸到了 控制序列?。。?/p>

逃逸
從標準輸出序列中逃逸出來

可以讓輸出
可就不是 輸出的文本 了
退出(Escape) 出去
從當前的字符串序列中
后面的內(nèi)容
而是 控制序列(Control Sequence)
在
第10行第20列
進行輸出[10;20H
控制 輸出位置那為什么有控制序列呢?
緣起
電傳打字機 輸出的顏色
來控制 打印顏色的深淺
是物理過程
只能通過 控制色帶(類似于墨盒)

早期的終端
都有 自己獨特的 控制字符
通過調(diào)節(jié) 顯示器亮度
來改變顯示效果
各個終端的 制造商
這些特殊字符 是和 機器型號相關(guān) 的
只要 接受到 這些控制字符
終端 就可以 調(diào)整輸出方式
但是 并沒有統(tǒng)一標準
統(tǒng)一標準
但是不同終端
控制方式不同
可能 造成顯示狀態(tài)
異常
遠程終端輸出結(jié)果不可控
需要一個關(guān)于控制字符的統(tǒng)一標準
1964 年
ISO 646
整合為工業(yè)標準
叫做 ANSI X3.64
在歐洲以
ECMA-6
的形式存在后來被
ANSI
(American National Standards Institute
)

這個字符集 是不是很像 ascii
而且包括了 整個黑暗森林
這套標準
本來 在各種電傳打字機 被實現(xiàn)
后來 在各種終端中 被實現(xiàn)
現(xiàn)在 在
terminal軟件
被實現(xiàn)
esc 鍵
Teletype Model ASR-33 終端鍵盤
數(shù)據(jù)通信行業(yè) 最受歡迎的終端之一
1963 年推出
注意 shift 和 ctrl 都已經(jīng)出現(xiàn)
Alt Mode 出現(xiàn)在第 1 列

\e
這個轉(zhuǎn)義序列有了對應的按鍵嗎?
ALT MODE
是用來 切換模式的 特殊按鍵
這是當時的
esc
鍵 嗎?
總結(jié)
這次了解了 新的轉(zhuǎn)義模式
這個字符 讓字符串 退出標準輸出流
進行控制信息的設置
可以設置 光標輸出的位置
\033 逃逸控制字符 escape

ASR33中的ALT MODE
是 今天的ESC鍵嗎??????
我們下次再說!*
藍橋->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython