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 只能接受乙個引數...