python 字元編碼:
編碼:從人類認識的字元通過 編碼表一一對應轉換為編碼表上面的機器碼,這種方式稱為編碼
解碼:把通過編碼表轉換為的0101的機器碼再通過編碼表,一一對應,把機器碼再轉化為人類能識別的字元這個過程叫做解碼
python 中存在的幾種編碼方式:
1、ascii
python2直譯器預設編碼方式,python2通過ascii編碼把字元轉化為01的機器碼,這種編碼方式只能識別英文和英文本元
2、utf-8
python3直譯器預設的編碼方式,python3通過ascii編碼把字元轉化為01的機器碼,utf-8能識別所用到的一切字元
100000010
乙個bytes 有八個二進位制位組成,其中二進位制位的最高位為標識位,標識位為1,代表是中文字元,會和接下來的另外乙個bytes和成乙個二bytes的中文字元
如果二進位制位最高位為0,代表二進位制代表的是英文本元,英文本元只會使用乙個bytes。
3、文字檔案中存在的亂碼行為:
3、1存亂: 要存入硬碟的字元 不能被所使用的編碼方式識別,此時會產生亂碼,這種方式是致命的出現亂碼之後無法恢復為原字元
取亂: 要讀入記憶體的字元 使用的字元編碼 和解碼使用的編碼方式不同,此時會產生亂碼,這種方式不致命不會更改硬碟中的原字元
python3 中存入硬碟和讀入記憶體的方式都預設為utf-8所以不會產生編碼錯誤
python2 中存入硬碟的方式為ascii,而pychrm的預設解碼方式為utf-8所以會產生亂碼,而且ascii不能識別除英文和英文本元以外的其他字元,遇到字串賦值時如果有中文,也會出現亂碼
解決python2 亂碼的方式:
1:頭部 coding:utf-8
2:字串賦值 要在字串前面加上乙個小寫的u
pycharm 中顯示的字元都是用unicode來解碼的,所以在pychrm
中不會出現亂碼,而從pychrm裡面,把字元存入硬碟既從字元到二
進製的機器碼所用的預設方式是utf-8,既通過utf-8編碼表,把
記憶體中的字元通過編碼表一一對應成為機器碼,這個過程叫做編碼
從硬碟讀入記憶體就是utf-8
的二進位制機器碼再通過utf-8編碼表,把二進位制一一對應成為人類
能識別的字元,這個過程叫解碼
day10 Python 命名空間和作用域
1 命名空間 在python直譯器開始執 之後,就會在記憶體中開闢 個空間,每當遇到 個變數 的時候,就把變 名和值之間的關係記錄下來,但是當遇到函式定義的時候,直譯器只是把函式名讀入記憶體,表 這個函式存在 至於函式內部的變 和邏輯,直譯器是不關心的.也就是說一開始 的時候函式只是載入進來,僅此而...
day10 字元編碼
這節理論比較多,要好好理解,如果理解不了,一定要把結論記下來 所以基本沒寫別的內容 ascii表 1 只支援英文本串 2 採用8位二進位制數對應乙個英文本串 gbk表 1 支援英文本元 中文字元 2 採用8位 8bit 1bytes 二進位制數對應乙個英文本串 採用16位 16bit 2bytes ...
Day10 集合 字元編碼
集合 list tuple dict一樣都可以存放多個值,但是集合主要用於 去重 關係運算 去重 1.只能針對不可變型別去重 2.無法保證原來的順序 定義 在 內用逗號分隔開多個元素,集合具備以下三個特點 1 每個元素必須是不可變型別 2 集合內沒有重複的元素 3 集合內元素無序 型別轉換 但凡能被...