python學習筆記 day2 資料

2021-09-25 10:00:21 字數 1751 閱讀 1584

py_day2_資料

讀《python語言及其應用》做的筆記

目的: 了解unicode, utf-8的不同,編碼,解碼方法。

正規表示式部分感覺介紹的過於簡略了,所以沒有記錄,以後專門看正規表示式的時候再寫。

1,文字字串

文字ascii使用7位  128種取值。

unicode 使用若干個8bit的集合,稱之為平面(plane)。

python3中的字串是unicode字串而不是位元組陣列。

python中的unicodedata提供了下面兩個方向的轉換函式:

1)lookup(),接受不區分大小寫的標準名稱,返回乙個unicode字元。

2)name(),接受乙個unicode字元,返回大寫形式的名稱。

用法:import unicodedata

name = unicodedata.name(value)

value = unicodedata.lookup(name)

這些函式的問題來自於字型的限制。

utf-8

1)將字串編碼為位元組

2)將位元組解碼為字串

是一種變長編碼方式

utf-8是python,linux,以及html的標準文字編碼方式。

編碼: 將字串轉換為一系列位元組的過程。

編碼方式 'ascii', 'uft-8', 'latin-1', 'cp-1252', 'unicode-escape'

encode('utf-8')

解碼: 將位元組序列轉換為unicode字串的過程。

decode('unicode')

格式化1) 使用%的舊式格式化

%s, %d, %x, %o, %f, %e, %g, %%(文字值本身)

2) 使用{}和format的新式格式化

與舊格式化相容

'{} {} {}'.format(n, f, s)

舊格式化中傳入引數的順序需要與%佔位符出現的順序完全一致,新格式化裡,可以自己制定插入的順序。

' '.format(f, s, n)

0代表第乙個引數f, 1代表第二個,2代表第三個。

引數名可以是字典或者命名變數,格式串中的識別符號可以引用這些名稱。

新格式化也支援其他各類設定(最小域寬、最大字元寬、排版,等等)。

正規表示式

與之相關的功能都位於標準庫模組re中,因此首先要引用它。

需要定義乙個用於匹配的模式(pattern)字串以及乙個匹配的物件:源(source)字串。

result = re.match('you', 'young frankenstein')

優先進行編譯以加快匹配速度:

youpattern = re.compile('you')

result = youpattern.match('young frankenstein')

其他方法:

search(), 

findall(), 

split(), 

sub()。

^和$叫作錨點:^將搜尋域定位到字串的開頭,$則定位到結尾。

這本書裡沒有看到我想看的部分,不作記載了。

2,二進位制資料

需要了解位元組序,以及整數的符號位之類的概念。

可能需要研究二進位制檔案格式、網路包內容,從而對其中的資料進行提取甚至修改。

該節了解一些基本操作。

位元組和位元組陣列

位元組是不可變的,像位元組資料組成的元組。

位元組陣列是可變的,像位元組資料組成的列表。

python學習筆記 day2

函式之間或類的方法之間使用空行分隔,表示乙個新的開始,類和函式入口之間也用空行分隔。空格不是語法的一種,但是最好這樣做,為了方便閱讀和日後的維護 input n按下enter後退出 n value input n請輸入 n print value 接收輸入的資訊並列印python支援同一行內編寫多行...

Python學習筆記 Day2

在python中,for迴圈的功能十分強大,使用起來有些類似c 中的auto型別有些類似 for iterator in sequence 基本形式,iterator的型別和sequence的元素型別相同 for i in hello world print i 輸出字串中的每乙個字元 prime ...

Python學習筆記(day2) 雜談

今天看的知識挺雜的,主要還是集中在判斷語句和列表這一部分 分割線 1 多重判斷 if 和 elif 之間的區別在於占用記憶體不同。多個 if 要求電腦不斷重複判斷,而elif只需要一次判斷。大大提高了電腦讀寫 的速度 2 自增和自減運算。熟練掌握p 2,p 2的含義 3 input 只能接受乙個引數...