Python基礎知識筆記

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語句:是告訴程序跳出當前循環,直接執行下一循環

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章