人識別的語言與機器識別的語言轉化的媒介 *****
重點:什麼是字元編碼
人類能識別的是字元等高階識別符號,電腦只能識別0,1組成的識別符號,要完**與機器之間的資訊交流,一定需要乙個媒介,進行兩種識別符號的轉化(兩種識別符號的對應關係),對應關係形成的結構稱之為:編碼表.
了解:編碼表的發展史
1. ascii(ascii):字母、數字、英文符號與計算機01識別符號的對應關係
思考:如何將128個字元用01完全標籤
二進位制:11111111 => 255 => 1bytes(1位元組) => 8個二進位制位
2.中國:研究漢字與計算機01識別符號的對應關係:gb2312 => gbk(***) => gb18030
3. 製造乙個可以完成萬國字元與計算機01識別符號的對應關係的編碼表
編碼表:unicode表
py2:ascii,沒有按萬國編碼,原因py2要誕生先有萬國編碼
py3: utf-8, 採用萬國編碼來解釋文字內容
思考:unicode與utf-8什麼關係
unicode:用2個位元組來儲存漢字,用2個位元組來儲存英文本母,占有空間較多,讀取效率極高
utf-8:用3-6個位元組來儲存漢字,用1個位元組來儲存英文本母,占有空間較少,讀取效率低
總結:記憶體都是按unicode儲存資料,硬碟和cpu採用utf-8來訪問資料.
unicode與utf-8採用的是一張unicode編碼表,utf-8是unicode編碼表體現方式,變長儲存資料
變長優點:(大量資料都是以英文存在,所以utf-8空間更小)傳輸速度更快
字元佔多少位元組,字串轉化 ***
# unicode字串,預設字串
s1 = u'abc你好\n不好'
print(s1)
# 位元組字串
s2 = b'abc123\xb7\xb7'
print(s2)
# 原義字串: 不對字串記憶體做任何操作(eg:\n的轉化)
s3 = r'abc你好\n不好'
print(s3)
# 編碼與解碼
s = '123呵呵'
n_b = bytes(s, encoding='utf-8')
print(n_b)
b = b'123\xe5\x91\xb5\xe5\x91\xb5'
n_s = str(b, encoding='gbk')
print(n_s)
# 重點:*****
# 將u字串編碼成b字串
print(u'你好'.encode('utf-8'))
# 將b字串解碼成u字串
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8'))
操作硬碟中的一塊區域:讀寫操作 *****
檔案:硬碟中一塊儲存空間(虛擬的檔案)
檔案操作:根據檔名來操作硬碟的那塊儲存空間,操作方式 讀read 寫write
# 一、使用檔案的三步驟
# 1、開啟檔案
# 變數名 = 檔案空間
# 檔案路徑 操作模式(讀|寫) 編碼
f = open('a.txt', 'r', encoding='utf-8')
# 2、操作檔案
# data = f.read(3) # 將所有內容讀取出來,如果設定讀取長度,按照規定長度讀取資料
# print(data)
# 一次讀取一行
# line = f.readline()
# print(line)
# line = f.readline()
# print(line)
# 按行一次性全部讀出
# lines = f.readlines()
# print(lines)
# 逐步一行一行讀取
# l =
# for line in f:
# # print(line)
# print(l)
s = set()
for line in f:
# print(line)
s.add(line)
print(s)
# 3、關閉檔案
f.close() # 釋放作業系統對檔案的持有,變數f還被應用程式持有
# del f # 系統自動**
print(f)
# 二、模式:w
'''主模式:r:讀 | w:寫 | a:追加
從模式:b:按位元組操作 | t:按字元操作 | +:可讀可寫
了解:x:異常寫 | u:被遺棄了
'''# 基礎寫
# 檔案不存在:會新建檔案,再操作檔案
# 檔案存在:先清空檔案,再操作檔案
w = open('b.txt', 'w', encoding='utf-8')
w.write('456')
w.close()
print('end')
05(字元 字元編碼 字符集)
一 字元 各種文字和符號的總稱。二 字元編碼 即計算機對各種字元,在計算機中的一種二進位制儲存代號 三 字符集 即多個字元的集合,同一字元在不同字符集中的二進位制儲存代號是不同的。四 常用設定 1 修改字符集 set names 字符集 2 檢視系統字符集設定 show variables like...
字元編碼 字元編碼的奧秘
字元編碼相信是每個程式設計師的噩夢,只要是有中文的地方,總是會遇到各種編碼的問題,並且這種問題還非常難纏,尤其在linux上,因為上面很多軟體都是針對 英語國家開發的,是不會考慮其他語種編碼問題。在遇到編碼的無數大坑之後,我決定仔細研究下編碼問題,因為這就像一道坎一直橫在你面前,每次到這裡你都會 跌...
80 20 010 原理 字元編碼 字元編碼
ascii american standard code for information interchange,美國資訊交換棕準代礙 7 bit來表示 個字元,共汁可以表示128神字元。is08859 1 b bit表示 個字元,即用乙個字苓 byte 8 bit 來表示 個字元,共汁可以表示25...