轉:https://www.cnblogs.com/yufeihlf/p/5709832.html
python核心編程目錄
Chapter1:歡迎來到python世界!-頁碼:7
1.1什么是python
1.2起源 :羅薩姆1989底創建python
1.3特點
1.3.1高級
1.3.2面向對象
1.3.3可升級
1.3.4可擴展
1.3.5可移植性:python使用C寫的。
1.3.6易學
1.3.7易讀
1.3.8易維護
1.3.9健壯性
1.3.10高效的快速原型開發工具
1.3.11內存管理器 :內存管理由python解釋器負責,開發僅僅致力於開發計划中的應用程序。
1.3.12解釋性和(字節)編譯性:無需編譯,當執行py文件,會生成.pyc或.pyo文件
1.4下載和安裝python
1.5運行python
1.5.1命令行的交互式解釋器
1.5.2從命令行啟動腳本
1.5.3集成開發環境
1.5.4其他的集成開發環境和執行環境
1.6python文檔
1.7比較python(python與其他語言的比較)
Chapter2:Python起步-頁碼:31
注:語句和表達式的區別
語句是使用關鍵詞來組成命令,告訴解釋器要做什么。
表達式沒有關鍵詞,可以使算術表達式,也可以是使用括號調用的函數。
2.1程序輸出,print語句及“Hello World” :print是關鍵字
Print ‘%s is number %d!’%(‘python’,1) #print與字符串格式運算符(%)結合使用。
2.2程序輸入和raw_input()內建函數 :raw_input()是內建函數
2.3注釋#
2.4運算符 :算數運算符+ - * / // % ** 比較運算符,邏輯運算符
2.5變量和賦值
2.6數字:int,long,bool,float,complex(復數)
2.7字符串
2.8列表[]和元組()
2.9字典{}
2.10代碼塊及縮進對齊
2.11 if語句
2.12 while循環
2.13 for循環和range()內建函數: enumerate()內建函數可循環索引和元素
2.14列表解析:可使用for循環將所有值放在一個列表里。
2.15文件和內建函數open(),file()
2.16錯誤和異常
2.17函數:python中的函數使用小括號()調用。
2.18類
2.19模塊:文件名字,不包括.py
2.20實用的函數:dir,help,len,open,raw_input,str,type
Chapter3:Python基礎-頁碼:59
3.1語句和語法
3.1.1注釋(#)
3.1.2繼續(\)
3.1.3多個語句構成代碼組(:)
3.1.4代碼組由不同的縮進分隔
3.1.5同一行書寫多個語句(;)
3.1.6模塊
3.2變量賦值:= 鏈式賦值,多元賦值
3.3標識符
3.3.1合法的python標識符:大小寫敏感
3.3.2關鍵字:import keyword; print keyword.kwlist 關鍵字加對象=語句 直接使用
3.3.3內建:dir(__builtins__) 直接使用
3.3.4專用下划線標識符_xxx:私有的 __xxx__:系統定義的名字 __xxx:類中私有的變量名
3.4基本風格指南
3.4.1模塊結構和布局
如果模塊被導入,__name__的值為模塊名字
如果模塊是被直接執行,__name__的值為__main__
3.4.2在主程序中書寫測試代碼
3.5內存管理
3.5.1變量定義
3.5.2動態類型
3.5.3內存分配
3.5.4引用計數
3.5.5垃圾收集
3.6第一個Python程序
3.7相關模塊和開發工具
Chapter4:Python對象-頁碼:86
4.1python對象:包括三個特性:身份id(),類型type(),值
4.1.1對象屬性:用.標記法來訪問屬性,最常用的屬性是函數和方法
4.2標准類型
4.3其他內建類型
4.3.1類型對象和type類型對象
4.3.2None,Python的Null對象:布爾值為False的對象列舉。
4.4內部類型
4.4.1代碼對象
4.4.2幀對象
4.4.3跟蹤記錄對象
4.4.4切片對象
4.4.5省略對象
4.4.6XRange對象
4.5標准類型運算符
4.5.1對象值的比較:< <= > >= != ==
4.5.2對象身份的比較:is 或者 id(a)==id(b
4.5.3布爾類型的運算符:not,and,or
4.6標准類型內建函數
4.6.1 type()
4.6.2 cmp()
4.6.3 str()和repr()(及反引號運算符``)
4.6.4type()和isinstance():isinstance(a,type(a))為True
4.6.5Python類型運算符和內建函數總結
4.7類型工廠函數:int,str,list,tyoe
4.8標准類型的分類
4.8.1存儲模型
原子類型:數字,字符串
容量類型 列表,元組,字典
4.8.2更新模型
不可變類型:數字,字符串,元組:看似更新了,其實是新生成一個對象,可以用id查看。
可變:列表,字典
4.8.3訪問模型
直接訪問:數字
順序訪問:字符串,列表,元組
映射訪問:字典
4.9不支持的類型
Chapter5:數字-頁碼:116
5.1數字類型
5.2整型
5.2.1布爾型:True False
5.2.2標准整數類型:int:長度與計算機的位數有關,有32位-2**31到2**31-1,也有64位
5.2.3長整型:無上限
5.2.3整型和長整型的統一
5.3雙精度浮點數:8個字節
5.4復數
5.4.1復數的內建屬性
5.5運算符
5.5.1混合模式運算符,優先級復數,浮點數,長整型,整型
5.5.2標准類型運算符
5.5.3算數運算符 /地板除:舍去小數部分,返回一個不大於結果的整數部分(注意負數)
若有:from __future__ import division:/代表浮點數除法,//代表地板除(整除){浮點數相除,也是整除,最后結果加.0}
若無:from __future__ import division:當數字有浮點數,/代表浮點數除法,當數字都是整數,/代表地板除,//一直為地板除,若有浮點數,結果加.0
5.5.4*位運算符(只適用於整數)
5.6內建函數與工廠函數
5.6.1標准類型函數:cmp(),str(),type()
5.6.2數字類型函數:int(),long(),float(),complex(),bool()
功能函數
abs():返回參數的絕對值
coece():數據類型轉換函數,返回一個包含類型轉換完畢的兩個數值元素的元組
divmod():內建函數把除數和余數運算結果結合起來,返回一個包含商和余數的元組。
>>> divmod(5,3)
(1, 2)
>>> divmod(-5,3)
(-2, 1)
round():用於對浮點數進行四舍五入運算
>>> round(4.4)
4.0
>>> round(4.5)
5.0
>>> round(-4.4)
-4.0
>>> round(-4.5)
-5.0
pow():進行指數運算
5.6.3僅用戶整數的函數
5.7其他數字類型
5.7.1布爾“數”
5.7.2十進制浮點數
5.8相關模塊:decimal,array,math/cmath,operator,random
Chapter6:序列,字符串,列表和元組-頁碼:151
注:如果是標准類型的內建函數(dir(__builtins__)可查到),那么執行形式:內建函數(序列對象),如果是某序列的內建函數(dir(str)或dir(list)或dir(tuple)或dir(dict)或dir(file)等可以查到),那么執行形式:序列對象.內建函數。
6.1序列
6.1.1標准類型操作符
6.1.2序列類型操作符: in和not in,+,*,切片
6.1.3內建函數(BIFs):list,str,tuple,enumerate,len,reversed,zip
6.2字符串:單引號和雙引號都可以,轉義字符在引號中起作用
6.3字符串和操作符
6.3.1標准類型操作符
6.3.2序列操作符:切片,成員操作符in,not in
6.4只適合於字符串的操作符
6.4.1格式化操作符(%)
6.4.2字符串模板:更簡單的替代品
6.4.3原始字符串操作符(r/R)
6.4.4 Unicode字符串操作符(u/U)
6.5內建函數
6.5.1標准類型函數:cmp(),sorted():排序總返回列表
6.5.2序列類型函數:len(),enumerate(),zip()
6.5.3字符串類型函數:raw_input(),str(),Unicode()
6.6字符串內建函數: join(列表), split(分隔符),引用 字符串對象.內建函數: dir(str)
>>> L=['a','b','c']
>>> s='_'.join(L) #join是將列表組合為字符串
>>> print s
a_b_c
>>> r=s.split('_') #split是將字符串分隔為列表
>>> print r
['a', 'b', 'c']
6.7字符串的獨特特性
6.7.1特殊字符串和控制字符
6.7.2三引號:所見即所得
6.7.3字符串不變性
6.8 Unicode
6.8.1術語
6.8.2什么是Unicode?
6.8.4Codecs是什么?
6.8.5編碼解碼
6.8.6把Unicode應用到實際應用中
6.8.7從現實中得到的教訓
6.8.8 Python的Unicode支持
6.9相關模塊:string,re
6.10字符串關鍵點總結
6.11列表[]
6.12操作符
6.12.1標准類型操作符:比較操作符,倆列表的元素分別比較,直到一方勝出為止。
6.12.2序列類型操作符:切片,成員關系操作(in,not in),連接操作符+,append(),*
6.12.3列表類型操作符和列表解析:用方括弧和for循環
6.13內建函數
6.13.1標准類型函數:cmp():同比較操作符
6.13.2序列類型函數:
len(),max(),min(),sorted(),reversed(),enumerate(),zip(),sum(),list(),tuple()
6.13.3列表類型內建函數:range()
range(1,4):1,2,3
range(4,1,-1):4,3,2
range(-4,-1):-4,-3,-2
range(-1,-4,-1):-1,-2,-3
6.14列表類型的內建函數:列表對象.內建函數:
dir(list):append(),insert(),pop(),remove()
注:字符串是不可變的:不可變對象的方法是不能改變它們的值的,所以它們必須返回一個新的對象。而列表是可變的,在使用可變對象的方法,這些操作會在原地執行操作,也就是說現有的列表內容會改變,但是沒有返回值,不要傻傻的a=a.append()!
6.15列表的特殊特性
6.15.1用列表構建其他數據結構:堆棧:后進先出。隊列:新進新出。
6.16元組()
6.17元組操作符和內建函數
6.17.1標准類型操作符,序列類型操作符和內建函數:與列表一致。
6.17.2元組類型操作符和內建函數,內建方法:暫無。
6.18元組的特殊特性
6.18.1不可變給元組帶來了什么影響?
6.18.2元組也不是那么“不可變”:+更新成新對象。可以改變元組的列表元素的某個值。
6.18.3默認集合類型
6.18.4單元素元組:(‘xyz’,)
6.18.5字典的關鍵字
6.19相關模塊:copy,re,operator
6.20拷貝Python對象淺拷貝和深拷貝
6.21序列類型小結
Chapter7:映射和集合類型-頁碼:250
7.1映射類型:字典{}可查看字典類型的屬性dir(dict)
7.2映射類型操作符:不支持拼接+和重復*的操作
7.2.1標准類型操作符
7.2.2映射類型操作符[],in,not in
7.3映射類型的內建函數和工廠函數
7.3.1標准類型函數[type(),str()和cmp()]
7.3.2映射類型相關的函數:dict(),len(),hash()
7.4映射類型的內建函數dir(dict):keys(),values(),items(),get(),copy()
7.5字典的鍵
7.5.1不允許一個鍵對應多個值
7.5.2鍵必須是可哈希的:不可變類型都是可哈希的。
7.6集合類型([])
7.7集合類型操作符
7.7.1標准類型操作符(所有的集合類型)
7.7.2集合類型操作符(所有的集合類型)
7.7.3集合類型操作符(僅適用於可變集合)
7.8內建函數
7.8.1標准類型函數:len()
7.8.2集合類型工廠函數:set(),frozenset()
7.9集合類型內建方法
7.9.1方法(所有的集合方法)
7.9.2方法(僅適用於可變集合)
7.9.3操作符和內建方法比較
7.10操作符,函數/方法
7.11相關模塊:set
Chapter8:條件和循環-頁碼:285
8.1 if語句
8.1.1多重條件表達式:and,or,not
8.1.2單一語句的代碼塊
8.2 else語句
8.2.1避免“懸掛else”
8.3 elif語句
8.4條件表達式(即“三元操作符”)
X if C else Y #C是條件表達式;X是C為True時的結果;Y是C為False時的結果
8.5while語句
8.5.1一般語法
8.5.2計數循環
8.5.3無限循環
8.6 for語句:可用在列表解析和生成器表達式中。
8.6.1一般語法:序列或迭代器
8.6.2用於序列類型:字符串,列表,元組
通過序列項迭代 for x in 對象 print x
通過序列索引迭代for x in range(len(對象)) print對象[x]
通過項和索引迭代 for x,y in enumerate(對象) print x,y
8.6.3用於迭代器類型
8.6.4 range()內建函數:range()的完整語法
8.6.5 xrange()內建函數
8.6.6與序列相關的內建函數
sorted()和zip()返回一個序列(列表)
reversed()和enumerate()返回迭代器(類似序列)
8.7 break語句:結束當前循環然后跳轉到下條語句
8.8 continue語句:終止當前循環,並忽略剩余的語句,然后回到循環頂端,進行下一次迭代。
在while和for循環里,while循環是條件性的,而for循環是迭代的。
8.9 pass語句:不做任何事。開發和調試時,可先把結構定下來。
Pass在任何需要的語句塊里都可以使用(如if,for,while,elif,else,class,def,try,except,finally)
8.10 再談else語句
if else,while else,for else:只要循環正常結束(不是通過break),else子句就會被執行。
8.11迭代器和iter()函數
8.11.1什么是迭代器?
8.11.2為什么要迭代器?
8.11.3如何迭代? next(),reversed(),enumerate(),any(),all()
8.11.4使用迭代器:序列(iter)和字典(iterkeys,itervalues,iteritems),文件
8.11.5可變對象和迭代器
8.11.6如何創建迭代器:iter(對象)
8.12列表解析:expr for iter_var in iterable [if cond_expr],最后產生列表。可替換map()和lambda及filter()和lambda
8.13生成器表達式
8.14 R相關模塊
Chapter9:文件和輸入輸出-頁碼:317
9.1文件對象
9.2文件內建函數[open()和file()]
File_object=open(file_name,access_mode=’r’,buffering=-1)
9.2.1工廠函數file()
9.2.2通用換行符支持(UNS)
9.3文件內建方法:dir(file)
9.3.1輸入:read(),readline(), readlines():將列表變為文件,無行結束符
9.3.2輸出:write(), writelines():將文件變為列表,不會刪除行結束符
9.3.3文件內移動:seek()
9.3.4文件迭代:for eachline in f:
9.3.5其他:close()
9.3.6文件方法雜項:os模塊,文件內建函數整理說明。
9.3.6文件內建屬性(數據屬性)
9.5標准文件:sys模塊
9.6命令行參數:sys.argv屬性
9.7文件系統 os模塊及os.path模塊中路徑名訪問函數整理
9.8文件執行
9.9永久存儲模塊
9.9.1 pickle和marshal模塊
9.9.2 DBM風格的模塊
9.9.3 shelve模塊
9.10相關模塊
Chapter10:錯誤和異常-頁碼:345
10.1什么是異常
10.1.1錯誤
10.1.2異常
10.2 Python中的異常:各個Error說明:NameError,ZeroDivisionError,SyntaxError,IOError,IndexError,KeyError,AttributeError
10.3檢測和處理異常
10.3.1 try-except語句:如果發生異常,try子句的剩余語句會被忽略,控制流立即跳轉到對應的處理器。沒有發生異常,控制流就會忽略except語句繼續執行。
10.3.2封裝內建函數
10.3.3帶有多個except的try語句
10.3.4處理多個異常的except語句
10.3.5捕獲所有異常:try: except Exception,e:
BaseException:(KeyboardInterrupt,SystemExit,Exception,所有內建異常)
10.3.6異常參數e
10.3.7在應用使用我們封裝的函數
10.3.8 else子句
10.3.9 finally子句
10.3.10 try-finally語句
10.3.11 try-except-else-finally:廚房一鍋端
10.4上下文管理
10.4.1 with語句
10.4.2 *上下文管理協議
10.5 *字符串作為異常
10.6觸發異常
之前的異常都是解釋器引發的,而程序員在編寫API時也可以程序觸發異常。
10.6.1 raise語句:raise Exception(‘[%s]錯誤信息提示’[%變量])
raise語句放在try塊中,if條件滿足則raise(拋出異常),通過except捕捉Exception異常。
10.7斷言
10.7.1斷言語句:assert expression[,’錯誤信息提示’]
Assert語句放在try塊中,通過except捕捉AssertionError異常。
如果斷言成功,則不采取任何措施。
如果斷言失敗,則觸發AssertionError(斷言錯誤)的異常。AssertionError異常和其他異常一樣可以用try-except語句塊捕捉,如果沒有捕捉,他將終止程序運行並提示traceback。
10.8標准異常:Python內建異常整理,異常是類。
根異常BaseException的子類:KeyboardInterrupt,SystemExit,Exception
Exception的子類:其他所有內建異常
10.9*創建異常
10.10為什么用異常(現在)?
10.11到底為什么要異常?
10.12異常和sys模塊
10.13相關模塊
Chapter11:函數和函數式編程-頁碼:388
11.1什么是函數?
11.1.1函數VS過程:過程時沒有返回值的函數(隱式返回默認值None)
11.1.2返回值與函數類型
11.2調用函數
11.2.1函數操作符
11.2.2關鍵字參數
11.2.3默認參數
11.2.4參數組-例子
通過一個把元組(非關鍵字參數)或字典(關鍵字參數)作為參數組傳遞給函數,可以將所有參數放進一個元組或字典中。如:
func(*tuple_grp_nonkw_args,**dict_grp_kw_args)
11.3創建函數
11.3.1 def語句
11.3.2聲明與定義比較
11.3.3前向引用
11.3.4函數屬性
11.3.5內部/內嵌函數
11.3.6 *函數(與方法)裝飾器
11.4傳遞函數:
1.def foo(): foo(函數對象的引用)和foo()(函數對象的調用)
2.foo作為函數的入參:foo1(foo)
11.5形式參數
11.5.1位置參數
11.5.2默認參數
11.6可變長度的參數
11.6.1非關鍵字可變長參數(元組)
11.6.2關鍵字變量參數(Dictionary)
11.6.3調用帶有可變長參數對象函數
11.7函數式編程
11.7.1匿名函數與lambda
11.7.2內建函數apply(),filter(),map(),reduce()
filter(func,seq)過濾,選出為真的序列(入參什么類型,結果就是什么類型)
map(func,seq)映射,將調用函數的結果返回來,列表類型。
reduce(func,seq),func為二元函數,只接受兩個參數,返回單一的,然后再與序列下一個元素來獲取又一個值,知道迭代整個seq,最終,返回一個值。
11.7.3偏函數應用
11.8變量作用域
11.8.1全局變量與局部變量
11.8.2 globa語句
11.8.3作用域的數字
11.8.4閉包
11.8.5作用域和lambda
11.8.6變量作用域和名字空間
11.9遞歸
11.10生成器
11.10.1簡單的生成器特性
11.10.2加強的生成器特性
注:11.7.3-11.10.2未仔細看,練習題未做。
Chapter12:模塊-頁碼:450
12.1什么是模塊
12.2模塊和文件
12.2.1模塊名稱空間:通過句點屬性標志指定了各自的命名空間
12.2.2搜索路徑和路徑搜索PYTHONPATH和sys.path
12.3名稱空間:名稱到對象的映射。
三個命名空間:局部命名空間,全局命名空間,內建命名空間
12.3.1名稱空間與變量作用域比較
12.3.2名稱查找,確定作用域,覆蓋:優先局部,再全局,再內建。
12.3.3無限制的名稱空間
12.4導入模塊
12.4.1語句:import:順序:Python標准庫模塊,Python第三方模塊,應用程序自定義模塊
解釋器執行到這條語句,則會在搜索路徑中找到了指定的模塊,就會加載它。
12.4.2 from import語句:導入指定模塊的是模塊屬性from a[.b.c] import d
12.4.3多行導入:\
12.4.4擴展的import語句(as):from a import b as c
12.5模塊導入的特性
12.5.1載入時執行模塊
12.5.2導入(import)和加載(load):加載只在第一次導入時發生
12.5.3導入到當前名稱空間的名稱
12.5.4被導入到導入者作用域的名字
12.5.5關於 __future__
12.5.6警告框架
12.5.7從ZIP文件導入模塊(zip文件包括.py,.pyc,.pyo文件)
12.5.8”新的”導入鈎子
12.6模塊內建函數
12.6.1__import__()
12.6.2 globals()和locals()
12.6.3 reload()
12.7包:使用標准的import和from-import語句導入包中的模塊
12.7.1目錄結構:每個包都有__init__.py文件
12.7.2使用from –import導入包
12.7.3絕對導入:名字通過Python路徑(sys.path或PYTHONPATH)來訪問
12.7.4相對導入:句點導入
12.8模塊的其他特性
12.8.1自動載入的模塊:__builtin__會被自動導入
12.8.2阻止屬性導入:屬性名稱前加_
12.8.3不區分大小的導入?
12.8.4源代碼編碼
12.8.5導入循環?
12.8.6模塊執行
12.9相關模塊
Chapter13:面向對象編程OOP-頁碼:473
13.1介紹:
13.1.1類和類實例
類是對象的定義,而實例是“真正的實物”,它存放了類中所定義的對象的具體信息。
class 類名(繼承的父類,如object):object是“所有類之母”
13.1.2方法:類的功能通俗名稱就是方法:def 方法名(self)
方法定義在類的定義中,但只能被實例所調用。所以用self,代表實例對象本身。
定義類(和方法)2.創建實例 3.用實例調用方法
13.1.3創建一個類(類定義)
__init__()方法:初始化一些值或初始化一些操作(如登錄數據庫),類的實例化會隱式調用__init__()方法,實例化的入參完全和__init__()方法接收的入參一致(除了self)
13.1.4創建子類
13.1.5命名類,屬性,方法 命名規范
類名:通常由大寫字母打頭:AbcDef
屬性(變量或常量):名詞:小寫:abc
方法:使用謂詞(動詞加對象):小寫_小寫:abc_def
13.2面向對象編程
13.2.1面向對象設計OOD與面向對象編程OOP的關系
13.2.2現實世界中的問題
13.2.3*常用術語
13.3類
13.3.1創建類
13.3.2聲明與定義:無區別,同時進行
13.4類屬性:屬於一個對象的數據和函數元素,通過句點標識符訪問。在調用類的方法前,需要創建一個實例。
13.4.1類的數據屬性
數據屬性僅僅是所定義的類的變量。不依賴任何類實例。
13.4.2方法
方法僅應用在類類型的對象(實例)
13.4.3決定類的屬性
通過dir(類名)或類名.__dict__可查看類的屬性
13.4.4特殊的類屬性:__name__,__doc__,__bases__,__dict__,__module__,__class__
13.5實例
13.5.2 __init__()“構造器”方法
調用類時,傳進的任何參數都交給了__init__(),__init__()是解釋器為你創建一個實例后調用的第一個方法。另,__init__()不允許放回任何對象(應當為None)
13.5.3 __new__() “構造器”方法
13.5.4 __del__() “解構器”方法
13.6實例屬性
實例僅擁有數據屬性(方法嚴格來說是類屬性)
13.6.1“實例化”實例屬性(或創建一個更好的構造器)
13.6.2查看實例屬性:通過dir和__dict__查看
13.6.3特殊的實例屬性:__class__和__dict__
13.6.4內建類型屬性
13.6.5實例屬性vs類屬性
13.7從這里開始校對—綁定和方法調用
方法是類屬性。方法只有在其所屬的類擁有實例時才能被調用,方法才綁定到實例中。方法的第一個參數都是變量self。
13.7.1調用綁定方法
13.7.2調用非綁定方法:派生一個子類,覆蓋父類的方法。
13.8靜態方法和類方法:未看
13.8.1 staticmethod()和classmethod內建函數
13.8.2使用函數修飾符
13.9組合:將不同的類混合到其他類中
13.10子類和派生:相同的類但有一些不同的功能
13.10.1創建子類
13.11繼承:描述了基類的屬性如何遺傳給派生類。一個子類可以繼承它的基類的任何屬性(除了__doc__)。
13.11.1__bases__類屬性
13.11.2通過繼承覆蓋(Overriding)方法:如果方法名相同,優先用子類自己的方法。
13.11.3從標准類型派生:未看
13.11.4多重繼承:未看
13.12類,實例和其他對象的內建函數
13.12.1 issubclass():是否是子類issubclass(sub,sup)
13.12.2 isinstance():是否是實例isinstance(obj1,obj2)
13.12.3 hasattr(),getattr(),setattr(),delattr()
13.12.4 dir()
13.12.5 super()
13.12.6 vars()
13.13用特殊方法定制類:未看
13.13.1簡單定制(RoundFloat2)
13.13.2數值定制(Time60)
13.13.3迭代器(RandSeq和AnyIter)
13.13.4*多類型定制(NumStr)
13.14私有化
13.15*授權
13.15.1包裝
13.15.2實現授權
13.16新式類的高級特性(Python 2.2+)
13.16.1新式類的通用特性
13.13.2__slots__類屬性
13.16.3特殊方法__getattribute__()
13.16.4描述符
13.16.5 Metaclasses(元類)和__metaclass__
13.17相關模塊和文檔
Chapter14:執行環境-頁碼:582 以后再看
14.1可調用對象:函數,方法,類,以及類的實例
14.1.1函數:內建函數BIFs,用戶定義函數UDF
14.1.2方法:內建方法BIM,用戶定義的方法UDM
14.1.3類
14.1.4類的實例:__call__
14.2代碼對象
14.3可執行的對象聲明和內建函數
14.3.1 callable()
14.3.2 compile()
14.3.3 eval()
14.3.4 exec
14.3可執行對象語句和內建函數
14.3.5 input()
14.3.6使用Python在運行時生成和執行Python代碼
14.4執行其他(Python)程序
14.4.1導入
14.4.2 execfile()
14.4.3將模塊作為腳本執行
14.5執行其他(非Python)程序
14.5.1 os.system()
14.5.2 os.popen()
14.5.3 os.fork(),os.exec*(),os.wait*()
14.5.4 os.spawn*()
14.5.5 subprocess模塊
14.5.6相關函數
14.6受限執行
14.7結束執行
14.7.1 sys.exit() and SystemExit
14.7.2 sys.exitfunc()
14.7.3 os._exit() Function os._exit()函數
14.7.4 os.kill() Function
14.8各種操作系統接口
14.9相關模塊
Chapter15:正則表達式-頁碼:621
15.1介紹/動機
15.1.1您的第一個正則表達式
15.2正則表達式使用的特殊符號和字符:整理表
15.2.1用管道符號(|)匹配多個正則表達式模式
15.2.2匹配任意一個單個的字符(.)
15.2.4從字符串的開頭或結尾或單詞邊界開始匹配(^ / $ / \b / \B)
15.2.5創建字符類([]):任何一個字符
15.2.5.1[]中指定范圍(-)和否定(^)
15.2.6使用必報操作符(*,+,?,{})實現多次出現/重復匹配
15.2.7特殊字符表示字符集
15.2.8用圓括號(())組建組:為多個字符添加重復操作符
15.3正則表達式和python語言
15.3.1 re模塊:核心函數和方法:compile,match,search,findall,finditer,split,sub,group,groups :函數的pattern指的是正則表達式
15.3.2使用compile()編譯正則表達式
compile(pattern,flags=0)
15.3.3匹配對象和group(),groups()方法
15.3.4用match()匹配字符串:
match(pattern,string,flags=0)
從頭開始匹配:返回regex對象。通過group提取匹配后的字符。
15.3.5 search()在一個字符串中查找一個模式(搜索與匹配的比較):
search(pattern,string,flags=0)
從任意位置匹配:返回regex對象。通過group提取匹配后的字符。
15.3.6匹配多個字符串(|)
15.3.7匹配任意單個字符(.):除了\n
15.3.8創建字符集合([])
15.3.9重復,特殊字符和子組:group(),groups()整理
15.3.10從字符串的開頭或結尾匹配及在單詞邊界上的匹配
15.3.11用findall()找到每個出現的匹配部分:返回列表或空列表
findall(pattern,string)
15.3.12用sub[和subn()]進行搜索和替換:返回替換后的字符串
sub(pattern,string,max=0)
15.3.13用split()分割(分隔模式):返回列表
re的split是根據正則表達式分隔字符串。字符串的split()是通過固定字符分隔。
split(pattern,string,max=0)
python原始字符串(raw strings)的用法
15.4正則表達式示例
15.4.1匹配一個字符串
15.4.2搜索與匹配的比較,“貪婪”匹配
Chapter16:網絡編程-頁碼:655
16.介紹
16.1.1什么是客戶/服務器架構
16.1.2客戶/服務器網絡編程
16.2套接字:通訊斷點
16.2.1什么是套接字? 通信接口?
套接字家族:基於文件型的AF_UNIX和基於網絡型的AF_INET
16.2.2套接字地址:主機與端口
16.2.3面向連接SOCK_STREAM與無連接SOCK_DGRAM
16.3 Python中的網絡編程
16.3.1 socket()模塊函數
16.3.2套接字對象(內建)方法
Chapter17:網絡客戶端編程-頁碼:685
Chapter18:多線程編程-頁碼:721
Chapter19:圖形用戶界面編程-頁碼:748
Chapter20:Web編程-頁碼:781
Chapter21:數據庫編程-頁碼:841
Chapter22:拓展Python-頁碼:880