[TOC]
>[success] # 編碼基礎
~~~
1.八位01的形式表示一個字節,一共是2**8 =256 就形成了ascii 格式
2.為了表示更多國家的文字出現了Unicode,32位表示一個字符
3.后來2**32位占用空間太多,出現了utf-8,一個字符最少用8位去表示,英文用8位
一個字節,歐洲文字用16位去表示兩個字節,中文用24 位去表示三個字節
4.gbk 中國人自己發明的,一個中文用兩個字節 16位去表示。
~~~
~~~
ascii
A : 00000010 8位 一個字節
unicode A : 00000000 00000001 00000010 00000100 32位 四個字節
中:00000000 00000001 00000010 00000110 32位 四個字節
utf-8 A : 00100000 8位 一個字節
中 : 00000001 00000010 00000110 24位 三個字節
gbk A : 00000110 8位 一個字節
中 : 00000010 00000110 16位 兩個字節
~~~
>[danger] ##### 單位換算
~~~
注:01000001 八位數代表一個字節
1bit 8bit = 1bytes
1byte 1024byte = 1KB
1KB 1024kb = 1MB
1MB 1024MB = 1GB
1GB 1024GB = 1TB
~~~
>[danger] ##### python 編碼
~~~
py3:
str 在內存中是用unicode編碼。
bytes類型
對于英文:
str :表現形式:s = 'alex'
編碼方式: 010101010 unicode
bytes :表現形式:s = b'alex'
編碼方式: 000101010 utf-8 gbk。。。。
對于中文:
str :表現形式:s = '中國'
編碼方式: 010101010 unicode
bytes :表現形式:s = b'x\e91\e91\e01\e21\e31\e32'
編碼方式: 000101010 utf-8 gbk。。。。
~~~
~~~
s1 = 'ssss'
# encode 編碼,將str --> bytes, (),也是由于python默認是unicode 編碼,因此也是將unicode 編碼成其他格式
s11 = s1.encode('utf-8')
s11 = s1.encode('gbk')
print(s11)
s2 = '中國'
s22 = s2.encode('utf-8')
print(s22)
s22 = s2.encode('gbk')
print(s22)
# \xe4 表示一個字節,根據不同編碼格式會 產生不同的字節數
打印結果:
b'ssss'
b'\xe4\xb8\xad\xe5\x9b\xbd'
b'\xd6\xd0\xb9\xfa'
~~~
>[dnager] ##### 解碼和編碼的用法
~~~
1.encode() 編碼,獲取到的是編碼之后的結果,bytes
2.decode() 解碼,把bytes編程我們熟悉的字符串
~~~
>[danger] ##### 絕對路徑和相對路徑
~~~
1.相對路徑是相對于你當前程序所在的文件夾,../ 是上級目錄的意思
2.絕對路徑就是路徑的全地址模式,從磁盤根目錄尋找
~~~
* 關于相對路徑的小案例

~~~
目標:我要在test.py 文件找到 file下的test 文件
1.首先應該獲取當前文件的上級文件,當前文件在py的文件件,由于py和file
是同級的因此,先獲取兩個同級的上級,在找到test
2.寫法:../file/test
~~~
- PYTHON-- 基礎
- Python -- 變量、常量、注解
- 算數\比較\賦值\邏輯運算符
- Python -- input 控制臺用戶輸入
- Python -- 流程控制/循環語句
- Python -- 切片
- Python -- 數據類型
- 基礎數據類型
- int -- 數字類型
- str -- 字符類型
- bool -- 布爾類型
- list -- 列表
- type -- 元祖
- dict -- 字典
- set -- 集合
- Python -- 深淺copy
- Python -- 文件的讀寫
- Python -- 函數
- 函數 -- 做參數使用
- 函數 -- 閉包
- 函數 -- 生成器
- 函數 -- 列表推導式
- 案例
- 基礎案例一
- 基礎案例二
- 基礎案例三
- COOKBOOK
- LIST、STR、DICT、TUPLE
- LIST - 列表方法總結
- 一、序列拆分成單獨變量
- 二、* 妙用
- 三、deque- 雙向隊列
- 四、求找到最大或最小的N個元素
- 4.1 heapq-- 簡單使用
- 五、去重并保持列表順序不變
- 六、切片slice
- 七、counter 統計序列中元素次數
- 八、itemgetter 列表套著字典排序
- 九、處理大量的列表數據
- 十、隨機事件處理列表
- DICT - 字典的總結方法
- 一、defaultdict 解決 KeyError
- 二、OrdereDict有序字典
- 三、zip 和 max/min 比較
- IDCT和LIST- 推導式
- 一、LIST 推導式
- 二、字典推到式
- TUPLE-元組
- 一、命名元組
- STR-字符串
- 一、常見的字符串方法
- 二、字符串拆分
- 三、字符串的位置匹配
- 四、字符串替換
- 五、正則大小寫/換行匹配
- 六、對字節類型處理
- 數字、日期、時間處理
- 一、數字的處理
- 二、時間換算
- 2.1 時間運算
- 2.2計算某一時刻上周幾的日期
- 2.2對時間轉換格式優化
- 迭代器和生成器
- 一、iter 迭代器 使用案例
- 二、生成器 yeild
- 三、構建一個反向迭代方法
- 四、實現反正函數構造
- 五、迭代對象切片/跳過元素
- 六、迭代出所有的組合排列
- 七、索引-值迭代序列化
- 八、zip 同時迭代多個序列
- 九、同時循環多個可迭代對象
- 十、yield from 遞歸案例
- 十一、合并序列,并按順序輸出
- 十二、使用 iter 替代 while True
- 操作文件
- 一、處理文件路徑
- 二、檢測文件/獲取文件信息
- 函數
- 一、函數基本案例使用
- 二、匿名函數
- 三、回調函數
- 四、閉包實現一個單個方法類
- 五、函數嵌套回調函數
- 類與對象
- 一、str/repr--讓類字符串表示
- 二、format -- 格式化類的內容
- 三、with -- 上下文管理類
- 四、創建節省內存的類
- 五、將類里面方法變成屬性
- 六、調用父類方法
- 七、擴展子類中的屬性
- 八、創建新的類或者實類屬性
- 九、簡化數據結果,簡化init
- 十、python 接口寫法
- 十一、通過類屬性創建委托訪問
- 十二、__new__重新初始化init
- 十三、通過字符串調用類
- 元編程
- 一、裝飾器
- 1.1 去掉裝飾器修飾
- 1.2 可接受參數裝飾器
- 1.3利用裝飾器對函數參數類型檢查
- 1.4編寫類裝飾器
- 1.5為類方法和靜態方法加裝飾器
- 1.6通過裝飾器給裝飾函數加參數
- 線程和進程