Python參考手冊,python參考手冊chm
運算式重要的內建函數
#函數 #描述-------------------------------------------------------------------------------------------------abs(numbers) #返回一個數的絕對值apply(func[,arg[,kwargs]]) #調用給定的函數,可選擇提供參數all(iterable) #如果所有iterable的元素均為真則返回True,否則返回Falseany(iterable) #如果有任一iterable的元素為真則返回True,否則返回Falsebasestring() #str和unicode抽象超類,取決於obj的布爾值callable(obj) #檢查對象是否可調用char(number) #返回ASCII為給定的字元classmethod(func) #通過一個執行個體方法建立類的方法cmp(x,y) #比較x,y。x<y:返回負數;x>y:返回正數;x==y,返回0complex(real[,imag]) #返回給定實部的複數delattr([mapping-or-sequence]) #從給定的對象中刪除給定的屬性dict([mapping-or-sequence]) #構造字典,可選擇從索引值對組成的列表構造。也可以用關鍵字參數調用dir(object) #列出給定對象的大多數特性divmod(a,b) #返回(a//b,a%b)enumerate(iterable) #對iterable所有項進行迭代eval(string[,globals[,locals]]) #對包含運算式的字串進行計算。可選擇給定的全域或局部範圍中進行execfile(file[,globals[,locals]]) #執行一個Python檔案,可選在給定全域或者局部範圍中進行file(filename[,mode[,bufsize]]) #建立給定檔案名稱的檔案,可選擇使用給定的模式和緩衝區大小float(object) #將字串或者數值轉換為浮點型frozenset([iterable]) #建立一個不可變集合,這意味著不能將它添加到其他集合中getattr(object,name[,default]) #返回給定對象中指定的特性的值,可選擇給定預設值globals() #返回表示當前範圍的字典hasattr(object,name) #檢查給定的對象是否有指定的屬性help([object]) #調用內建的協助系統,或列印給定對象的協助資訊hex(number) #將數字轉換為十六進位表示的字串id(object) #返回給定對象的唯一IDinput([prompt]) #等同於eval(raw_input(prompt))int(object[,radix]) #將字串或者數字轉換為整數isinstance(object,classinfo) #檢查給定的對象是否是給定的classinfo值的執行個體,classinfo可以是類對象、類型對象issubclass(class1,class2) #檢查class1是否是class2的子類iter(object[,sentinel]) #返回一個迭代對象,可以用於迭代序列的object_iter()迭代器len(object) #返回給定對象的長度list([object]) #構造一個列表locals() #返回表示當前局部範圍的字典long(object[,radix]) #將字串或者數字轉換為長整形map(function,seq1,...) #建立給定函數func應用到列表seq中每一項時返回的值組成的列表max(obj1[,obj2]...) #如果obj1為非空序列,則返回最大的元素;否則返回所提供參數的最大值 mix(obj1[,obj2]...) #如果obj1為非空序列,則返回最小的元素;否則返回所提供參數的最小值 object() #返回所有新式類的基數Object的執行個體oct(number) #將整型轉換為八進位表示的字串open(filename[,mode[,bufsize]]) #file的別名,在開啟檔案的時候使用open而不是filepow(x,y[,z]) #返回x的y次方,可選擇模除zord(char) #返回給定單字元的ASCII值range([start,]stop[,step]) #使用給定的起始值和結束值來建立數值範圍property(fget[,fset[,fdel[,doc]]]) #通過一組訪問器建立屬性raw_input([prompt]) #將使用者輸入的資料作為字串返回,可選擇使用給定的提示符promptreduce(func,seq[,initializer]) #將序列的所有漸增應用給定的函數,使用累積的結果作為第一個參數,所有的項作為第二個參數,可選擇給定起始值reload(module) #重載入一個已經載入的模組並且將其返回repr(object) #返回表示對象的字串,一般作為eval的參數使用reversed(object) #返回序列的反向迭代器round(float[,n]) #將給定的浮點四捨五入,小數點後保留n位set([iterable]) #返回從iterable產生的元素集合setattr(object,name,value) #設定給定對象的指定屬性的值為給定值sorted(iterable[,cmp][,key][,reverse]) #從iterable中返回一個新排序後的列表,可選的參數和列表方法sort中的參數相同staticmethod(func) #從一個執行個體方法建立靜態類方法str(object) #返回表示給定對象object的格式化好的字串sum(seq[,start]) #返回添加到選擇性參數start中的一系列數位和super(type[,obj/type]) #返回給定類型的超類tuple([sequence]) #構造一個元祖,可選擇使用sequence一樣的項type(object) #返回給定對象的類型type(name,bases,dict) #使用給定的名稱,基類和範圍返回一個新的類型對象unichr(number) #chr的Unicode版本unicode(object[,encoding[,errors]]) #返回給定對象的Unicode編碼版本,可以給定編碼方式和錯誤處理模式vars([object]) #返回表示局部作用於的字典,或者對應給定對象特性的字典xrange([start,]stop[,step]) #類似於range,但是返回的對象使用較少的記憶體,而且只用於迭代zip(seq1,...) #返回元祖的列表,每個元祖包括一個給定序列中的項。返回長度以最小為準.
列表方法
#方法 #描述-------------------------------------------------------------------------------------------------L.append(obj) #等同於L[len(L):len(L)] = [obj]L.count(obj) #返回L[i] == obj中索引為i的值L.extend(obj) #等同於L[len(L):len(L)] = seqL.index(obj) #返回L[i] == obj中最小的i,不存在會觸發ValueError異常L.insert(index,obj) #index>0,等同於L[index:index]=[obj],index<0,插入列表最前面L.pop([index]) #移除並且返回給定索引的項(預設為:-1即最後一項) L.remove(obj) #等同於L[L.index(obj)] L.sort([cmp][,key][,reverse]) #對L中的項進行原地排序。可以提供比較函數cmp,建立用於排序的鍵的key函數和reverse標誌進行自訂
字典方法
#方法 #描述-------------------------------------------------------------------------------------------------D.clear() #移除D中的所有項D.copy() #返回D的副本D.fromkeys(seq[,val]) #返回從seq中獲得的鍵和被設定為val的值的字典。可做類方法調用D.get(key[,default]) #如果D[key]存在,將其返回;否則返回給定的預設值NoneD.has_key(key) #檢查D是否有給定鍵keyD.items() #返回表示D項的(鍵,值)對列表D.iteritems() #從D.items()返回的(鍵,值)對中返回一個可迭代的對象D.iterkeys() #從D的鍵中返回一個可迭代對象D.itervalues() #從D的值中返回一個可迭代對象D.keys() #返回D鍵的列表D.pop(key[,d]) #移除並且返回對應給定鍵key或給定的預設值D的值D.popitem() #從D中移除任意一項,並將其作為(鍵,值)對返回D.setdefault(key[,default]) #如果D[key]存在則將其返回;否則返回預設值NoneD.update(other) #將other中的每一項加入到D中。D.values() #返回D中值的列表
字串方法
#方法 #描述-------------------------------------------------------------------------------------------------S.capitalize() #返回首字母大寫的字串的副本S.center(width[,fillchar]) #返回一個長度為max(len(S),width),S置中,兩側fillchar填充S.count(sub[,start[,end]]) #計運算元字串sub的出現次數,可將搜尋範圍限制為S[start:end]S.decode([encoding[,error]]) #返回使用給定編碼方式的字串的解碼版本,由error指定錯誤處理方式S.endswith(suffix[start[,end]]) #檢查S是否以suffix結尾,可給定[start:end]來選擇匹配的範圍S.expandtabs([tabsize]) #返回字串的副本,其中tab字元會使用空格進行擴充,可選擇tabsizeS.find(sun[,start[,end]]) #返回子字串sub的第一個索引,不存在則為-1,可選擇搜尋範圍S.index(sub[,start[,end]]) #返回子字串sub的第一個索引,不存在則引發ValueError異常.S.isalnum() #檢查字串是否由字母或數字字元組成S.isalpha() #檢查字串是否由字母字元組成S.isdigit() #檢查字串是否由數字字元組成S.islower() #檢查字串是否由小寫字母組成S.isspace() #檢查字串是否由空格組成S.istitle() #檢查字串時候首字母大寫S.isupper() #檢查字串是否由大寫字母組成S.join(sequence) #返回其中sequence的字串元素由S串連的字串S.ljust(width[,fillchar]) #返回S副本靠左對齊的字串,長度max(len(S),W),右側fillchar填充S.lower() #返回所有字串都為小寫副本S.lstrip([char]) #向左移除所有char,預設移除(空格,tab,\n)S.partition(seq) #在字串中搜尋seq並返回S.replace(old,new[,max]) #將new替換olad,最多可替換max次S.rfind(sub[,start[,end]]) #返回sub所在的最後一個索引,不存在則為-1,可定搜尋範圍S[start:end]S.rindex(sub[,start[,end]]) #返回sub所在的最後一個索引,不存在則會引發ValueError異常。S.rjust(width[,fillchar]) #返回S副本靠右對齊的字串,長度max(len(S),W),左側fillchar填充S.rpartition(seq) #同Partition,但從右側開始尋找S.rstip([char]) #向右移除所有char,預設移除(空格,tab,\n)S.rsplit(sep[,maxsplit]) #同split,但是使用maxsplit時是從右往左進行計數S.split(sep[,maxsplit]) #使用sep做為分割符,可使用maxsplit指定最大切分數S.zfill(width) #在S的左側以0填充width個字元S.upper() #返回S的副本,所有字元大寫S.splitlines([keepends]) #返回S中所有行的列表,可選擇是否包括分行符號S.startswith(prefix[,start[,end]]) #檢查S是否以prefix開始,可用[start,end]來定義範圍S.strip([chars]) #移除所有字串中含chars的字元,預設移除(空格,tab,\n)S.swapcase() #返回S的副本,所有大小寫交換S.title() #返回S的副本,所有單詞以大寫字母開頭S.translate(table[,deletechars]) #返回S的副本,所有字元都使用table進行的轉換,可選擇刪除出現在deletechars中的所有字元
基礎資料型別 (Elementary Data Type)
#類型 #描述 樣本--------------------------------------------------------Integer #無小數部分的數 42Long Integer #大整數 42LFloat #有小數部分的數 42.5, 42.5e-2Complex #實數和虛數的和 4 + 3j,42jString #不可變的字元序列 'foo',"bar","""abc""",r'\n' Unicode #不可變的Unicode序列 u'foo',u"bar",u"""abc"""
語句簡單語句
簡單語句由邏輯上的一行組成
運算式語句運算式也可以是語句。如果運算式是函數調用或者文檔字串的話尤其如此
"This module contains SPAM-related functions"
Assert 陳述式用於檢查條件是否為真,如假的話會引發AssertionError的異常.
#為真:>>> age = 20>>> assert age >= 12, 'The age under 12 is not allowed!'#為假:>>> assert age >= 40, 'The age must over 40!'Traceback (most recent call last): File "<stdin>", line 1, in <module>AssertionError: The age must over 40!
賦值語句賦值語句將變數綁定到值上。多個變數可以通過隊列解包的方式賦值,複製也可以是連鎖的。
>>> name, age = 'Jerry', 38 # 序列解包>>> x = y = z = 42 # 鏈式賦值>>> x = 42 # 簡單賦值
增量賦值語句賦值也可以通過運算子來擴充。運算子可以應用到已有變數值和新值,然後變數會被重新綁定到結果上。
>>> x *= 2 # x = x * 2>>> x += 5 # x = x + 5
pass語句無操作,啥事不用幹。可做預留位置,或不需要做任何事情的語句
try: x.nameexcept AttributeError: passelse: print 'Hello', x.name
del語句用於解除變數和特性的綁定,並且移除資料結構中的某部分。但不能用於直接刪除值,因為值只能通過垃圾收集進行刪除
del x # 解除變數綁定del seq[4] # 刪除序列元素del seq[4:] # 刪除序列切片del map['foo'] # 刪除字典中的映射項
print語句該語句將一個或多值寫入到給定的流中,預設sys.stdout.除非以逗號結束,否則會增加一個分行符號.
>>> print 'Hello,World!' # 將'Hello,World!\n'寫入到sys.stdout中>>> print 1, 2, 3 # 將'1 2 3\n'寫入到sys.stdout中>>> print >> somefile, 'xyz' # 將'xyz'寫入到somefile中>>> print 42, # 將'42'寫入到sys.stdout中
return語句
return語句會終止函數的運行,並且返回值。如果沒有提供返回值,則返回None.
>>>return # 從當前函數中返回None>>>return 42 # 從當前函數中返回42>>>return 1, 2, 3 # 從當前函數中返回(1,2,3)
yield語句
yield語句會暫時終止產生器的執行並產生一個值。產生器是迭代器的一種形式,可以和其他對象一起用於for迴圈.
yielda 42 # 從當前函數中返回42
raise語句
raise語句引發一個異常。可以不用參數進行調用(在except子句內,重引發當前捕捉到的異常)
也可以子類化Exception並且提供可選的參數(在這種情況下,會構造一個執行個體),或是使用Exception子類的一個執行個體
raise # 只能用於except子句中raise IndexErrorraise IndexError, 'index out of bounds'raise IndexError('index out of bounds')break語句
break語句會結束當前的for或while迴圈,並且會立即執行迴圈後的語句
while True: line = file.readline() if not line: break print line
continue語句
contineu語句會終止當前迴圈中的迭代,但是並不會完全終止迴圈,而是從下一個迭代過程的開始處繼續執行
while True: line = file.readline() if not line: break if line.isspace(): continue print line
import語句
import語句用於從外部模組中匯入名稱(綁定到函數、類、或者變數)。
這也包括from __future__ import * 語句。這個語句用於匯入在未來的Python版本中成為標準的特性。
import mathfrom math import sqrtfrom math import sqrt as squarerootfrom math import *
global語句
global語句用於標記一個變數為全域變數。它可以在函數內,以允許函數體內的語句重新綁定全域變數。
使用global語句一般來說被認為是不好的編程風格,能避免的話盡量避免。
count = 1def inc(): global count count += 1
exec語句
exec語句用於執行包含Python語句的字串,可選擇給定的全域和局部命名空間(字典)。
exec 'print "Hello,World!"'exec 'x = 2' in myglobals, mylocals # mygolobals和mylocals都是字典
lambda語句
Python中函數的一種,無變數,無return,簡單方便.
lambda x,y: x ** 2 + y, (1,2) # 冒號分割,前面變數,後面return值
複合陳述式複合陳述式包括其他語句塊
if語句
if語句用於條件執行,可以包括elif和else語句
if x < 10: print 'Less than 10'elif 10 <= x <= 20: print 'Less than 20'else: print 'More than 20'
while語句
while語句用於在給定的條件為真的時候重複執行。它可以包括else子句(在迴圈正常結束,在沒有break或者return語句的時候執行)
x = 1while x < 100: x *= 2print x
for語句
for語句用於對序列或者其他可迭代對象(對象有返回迭代器的__iter__方法)的元素重複執行迴圈。
它可以包括一個else子句(在迴圈正常結束,沒有任何break或者return語句的時候執行)
for i in range(10, 0, -1): print iprint 'Ignition!'
try語句
try語句用於封閉一段可能發生一個或者多個異常的代碼,讓程式可以捕捉這些異常,並且在捕捉到異常的時候進行異常處理。
try語句可以包含多個except子句來處理異常,以及多個finally子句(無論如何都會執行的語句,用於清理)
try: 1/0except ZeroDivisionError: print "Can't divide anything by zero."finally: print 'Done trying to calculate 1/0'
with語句
with語句使用所謂的上下文管理器對代碼塊進行封裝,允許上下文管理器實現一些設定和清理操作。
例如:檔案可以作為上下文管理器使用,它們可以關閉自身作為清理的一部分。
NOTE:在PYTHON2.5中,需要使用from __future__ import with_statement進行with語句的匯入
with open('NOTE.txt') as myfile: dosomething(myfile)#檔案在此處關閉函數定義
函數定義用於建立函數對象,並且綁定全域或者局部變數到函數對象上.
def double(x): return x * 2
類定義
類定義用於建立類對象,並且綁定全域或局部變數到類對象上
class Doubler: def __init__(self,value): self.value = value def double(self): self.value *= 2
Python3.0新特性
#版本 #新特性-----------------------------------------------------------------------------------------01.Python 3.0: #print是一個函數02.Python 3.0: #文字檔強制編碼03.Python 3.0: #zip、map和filter函數返回迭代器04.Python 3.0: #dict.keys()、dict.values()和dict.items()返回視圖而不是列表05.Python 3.0: #cmp參數不再用於sorted和list.sort,使用key代替06.Python 3.0: #除法成了真的除法 1/2 == 0.507.Python 3.0: #只有一個字串類型str,等同於Python2.x版本中的unicode類型08.Python 3.0: #basestring類被去除了09.Python 3.0: #新的bytes類型用於表示位元據和編碼後文本10.Python 3.0: #bytes寫成b"abc"11.Python 3.0: #UTF-8為預設的Python源檔案編碼方式。可以使用非ASCII標識符12.Python 3.0: #StringIO和cStringIO由io.StringIO和io.BytesIO代替13.Python 3.0: #新的內建字串格式化方法代替了%運算子14.Python 3.0: #函數可以注釋它自己的參數和傳回值15.Python 3.0: #使用raise Exception(args)代替 raise Exception, args16.Python 3.0: #使用except MyException as identifier代替 except MyException,identifier17.Python 3.0: #經典類和舊式類被去除了18.Python 3.0: #Foo(Base,metaclass=Meta): 用於設定原類19.Python 3.0: #增加抽象類別@abstractmethod和@abstractproperty20.Python 3.0: #增加了類修飾符,類似於函數修飾符21.Python 3.0: #不再使用``,而使用repr函數22.Python 3.0: #<>運算子不再使用,一律使用!=23.Python 3.0: #True,False、None、as和with成為關鍵字,意味著不能用作變數名24.Python 3.0: #long類型被重新命名為int,是現在唯一的整形,沒有L25.Python 3.0: #sys.maxint被去除,不再有最大值26.Python 3.0: #x<y在x和y屬不同類型的情況下會報錯27.Python 3.0: #__getslice__和類似的的函數被去除。可以使用分區對象調用__getitem__28.Python 3.0: #參數可以作為專用關鍵字29.Python 3.0: #使用nonloacl x以後,可以在外部範圍對x進行賦值30.Python 3.0: #raw_input被重新命名為input。使用eval(input())擷取原先input的功能 31.Python 3.0: #xrange重新命名為range32.Python 3.0: #元祖參數解包功能被去除。def foo(a,(b,c)):不再可用33.Python 3.0: #迭代器中的next函數被重新命名為x.__next__。next(x)會調用x.__next__34.Python 3.0: #增加了八進位字面量。以0o666代替066635.Python 3.0: #增加了二進位字面量。0b1010 == 10。bin()函數的作用類似於hex()和oct()36.Python 3.0: #增加了星號迭代器解包功能,對於參數a和b來說,使用*rest = seq或*rest.a = seq37.Python 3.0: #super函數可以不用參數調用,行為也會正確38.Python 3.0: #string.letters和相關函數被去除。使用string.ascii_letters代替39.Python 3.0: #apply函數被去除。使用f(*x)代替apply(f.x)40.Python 3.0: #callable被去除。使用hasattr(f,"__call__")代替callable(f)41.Python 3.0: #coerce函數被去除42.Python 3.0: #execfile被去除。使用exec代替43.Python 3.0: #file對象被去除44.Python 3.0: #reduce函數被移動到functools模組中45.Python 3.0: #reload函數被去除。使用exec代替46.Python 3.0: #dict.has_key被去除。使用k in d代替d.has_key(k)
說明:用於記錄開始使用PYTHON編程的時候,可以用於更新記憶的方便的“備忘錄”,完整的參考手冊,請參考Python的標準文檔
https://www.python.org/doc/