1.yield 的用法:
https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/
2.strip 的用法
Python strip() 方法用於移除字符串頭尾指定的字符(默認爲空格或換行符)或字符序列。
http://www.runoob.com/python/att-string-strip.html
3.join的用法
http://www.runoob.com/python/att-string-join.html
4.stdin 和 input 的區別
https://blog.csdn.net/CAU_Ayao/article/details/81985103
5.re.sub()的用法
https://www.cnblogs.com/nkwy2012/p/6548812.html
6.re.group()的用法
https://blog.csdn.net/flytiger_ouc/article/details/19699389
7.re模塊中常用功能函數
http://www.cnblogs.com/xiaohei001/p/9783530.html
8.re.sub(r'\*(.+?)\*',r'\1','pages of *World Wide Spam*,')的理解
https://blog.csdn.net/echonupt/article/details/7889156
9.import 知識點
(1)比如有一個文件叫做 hello.py 放在c:\Python 目錄下面,那麼要告訴解釋器從哪裏查找,可以使用:
import sys
sys.path.append('c:/Python') # 這告訴解釋器,除了去通常的路徑下查找,還可去此處的路徑查找。這樣子就可以在其他文件中導入 該模塊了
爲什麼導入模塊只導入一次?兩個這樣的模塊:需要彼此訪問對方的函數和類才能正確地發揮作用,若互相導入多次,將導致無窮遞歸
(2)在hello2 文件中定義了hello函數
import hello2
可用 hello2.hello()來調用函數
(3)在模塊中添加測試代碼
測試代碼要放在 if __name__ == '__main__':
(4)打印模塊sys的path目錄列表,使用 pprint 而不是普通的print,如果要讓解釋器能夠找到模塊,可將其放在其中任何一個位置中,最好是放置在目錄site-packages,但是這樣子也存在問題,解釋器中充斥着你所編寫的模塊,沒有必要的權限等,所以最好的方法是:標準做法是將模塊所在的目錄包含在環境變量 PYTHONPATH 中
10.包的知識點
(1)模塊存儲在擴展名爲.py的文件中,而包則是一個目錄。要被Python視爲包,目錄必須包含文件__init__.py。如果像普通模塊一樣導入包,文件__init__.py的內容就將是包的內容。包下面包含模塊,在導入的時候:
若只是導入(1),那麼只能使用 __init__.py 中的內容
11.探索模塊:
(1)比如有一個模塊 copy
dir(copy) :列出來對象的所有屬性(對於模塊,列出來所有的函數,類,變量)
>>> [n for n in dir(copy) if not n.startswith('_')] # 返回不以下劃線打頭的名稱
['Error', 'PyStringMap', 'copy', 'deepcopy', 'dispatch_table', 'error', 'name', 't', 'weakref']
copy.__all__ :旨在定義模塊的公有接口,具體來說就是告訴解釋器這個模塊導入所有的名稱意味着什麼
比如:
>>> copy.__all__
['Error', 'copy', 'deepcopy']
若使用 from copy import * ,將只能得到變量__all__中列出的幾個函數,如果要導入 pystringmap ,必須要顯式導入
>>>from copy import pystringmap
(2)獲取有關copy模塊中的函數copy的信息:help(copy.copy)
獲得函數的準確描述:print(copy.__doc__)
(3)描述了標準庫中的所有模塊:https://docs.python.org/library
(4)閱讀源代碼:print(copy.__file__) ,找到對應文件,從而查看模塊的代碼
12.sys 模塊
sys.argv :命令行參數,從程序外部獲取參數 https://www.cnblogs.com/aland-1415/p/6613449.html
sys.exit : sys.exit(0) 正常退出 其他的數值 1-127 是非正常退出 https://blog.csdn.net/u010571844/article/details/50419261
sys.modules :sys.modules是一個全局字典,該字典是python啓動後就加載在內存中。每當程序員導入新的模塊,sys.modules將自動記錄該模塊。當第二次再導入該模塊時,python會直接到字典中查找,從而加快了程序運行的速度。它擁有字典所擁有的一切方法 https://blog.csdn.net/brucewong0516/article/details/78993697
sys.platform : 返回當前的平臺 如:win32
stdin stdout stderr 變量包含與標準I/O 流對應的流對象. 如果需要更好地控制輸出,而print 不能滿足你的要求, 它們就是你所需要的. 你也可以替換它們, 這時候你就可以重定向輸出和輸入到其它設備( device ), 或者以非標準的方式處理它們
13.os模塊
14.集合,堆 和雙端隊列
(1)創建集合,可使用序列或者是其他的可迭代對象來創建集合
在不提供任何參數的情況下調用set,將會忽略重複的元素
集合可以進行各種標準集合操作,比如交集並集補集
(2)集合是可變的,所以不能用作字典中的鍵,還有就是集合只能包含不可變的值,所以不能包含其他集合
但是使用構造函數 frozenset創建給定集合的副本
(3)堆:它是一種優先隊列,可以讓你以任意順序添加對象
在操作堆函數之前要將函數heapify將列表變爲合法的堆,再去使用heappush 和 heappop這些函數
(4)雙端隊列:
from collections import deque
q = deque(range(5))
函數rotate 可以高效地旋轉元素
(15) while語句(不同於其他編程語言,python的while語句有else子句)
(16) break語句和continue語句
break語句:是跳出整個for或者while循環
continue語句:是告訴程序跳出當前循環,直接執行下一循環