1、數學運算類
函數名 | 函數功能 | 備註 |
---|---|---|
abs(x) | 求絕對值 | 1、參數可以是整型,也可以是複數2、若參數是複數,則返回複數的模 |
complex([real[, imag]]) | 創建一個複數 | |
divmod(a, b) | 分別取商和餘數 | 注意:整型、浮點型都可以,返回值爲一個元組 |
float([x]) | 將一個字符串或數轉換爲浮點數。 | 如果無參數將返回0.0 |
int([x[, base]]) | 將一個字符轉換爲int類型 | base表示進制
|
long([x[, base]]) | 將一個字符轉換爲long類型 | |
pow(x, y[, z]) | 返回x的y次冪 | Equivalent to x**y (with two arguments) or x**y % z (with three arguments) |
range([start], stop[, step]) | 產生一個序列 | 默認從0開始 |
round(x[, n]) | 四捨五入 | n : 保留小數點後n位,默認爲0 |
sum(iterable[, start]) | 對集合求和 | |
oct(x) | 將一個數字轉化爲8進制 | |
hex(x) | 將整數x轉換爲16進制字符串 | |
chr(i) | 返回整數i對應的ASCII字符 | |
bin(x) | 將整數x轉換爲二進制字符串 | |
bool([x]) | 將x轉換爲Boolean類型 |
2. 集合類操作
函數名稱 | 函數功能 | 備註 |
---|---|---|
basestring() | str和unicode的超類 | 不能直接調用,可以用作isinstance判斷 |
format(value [, format_spec]) | 格式化輸出字符串 | 格式化的參數順序從0開始,如“I am {0},I like {1}” |
unichr(i) | 返回給定int類型的unicode | |
enumerate(sequence [, start = 0]) | 返回一個可枚舉的對象 | 該對象的next()方法將返回一個tuple |
iter(o[, sentinel]) | 生成一個對象的迭代器,第二個參數表示分隔符 | |
max(iterable[, args…][key]) | 返回集合中的最大值 | |
min(iterable[, args…][key]) | 返回集合中的最小值 | |
dict([arg]) | 創建數據字典 | |
list([iterable]) | 將一個集合類轉換爲另外一個集合類 | |
set() | set對象實例化 | |
frozenset([iterable]) | 產生一個不可變的set | |
str([object]) | 轉換爲string類型 | |
sorted(iterable[, cmp[, key[, reverse]]]) | 隊集合排序 | |
tuple([iterable]) | 生成一個tuple類型 | |
xrange([start], stop[, step]) | xrange()函數與range()類似,但xrnage()並不創建列表,而是返回一個xrange對象 | 它的行爲與列表相似,但是隻在需要時才計算列表值,當列表很大時,這個特性能爲我們節省內存 |
3. 邏輯判斷
函數名稱 | 函數功能 | 備註 |
---|---|---|
all(iterable) | 集合中的元素都爲真的時候爲真 | 特別的,若爲空串返回爲True |
any(iterable) | 1、集合中的元素有一個爲真的時候爲真 | 特別的,若爲空串返回爲False |
cmp(x, y) | 如果x < y ,返回負數;x == y, 返回0;x > y,返回正數 |
4. 映射
函數名稱 | 函數功能 | 備註 |
---|---|---|
callable(object) | 檢查對象object是否可調用 | 1、類是可以被調用的2、實例是不可以被調用的,除非類中聲明瞭call方法 |
classmethod() | 註解,用來說明這個方式是個類方法 | 類方法即可被類調用,也可以被實例調用,類方法類似於Java中的static方法,類方法中不需要有self參數 |
compile(source, filename, mode[, flags[, dont_inherit]]) | 將source編譯爲代碼或者AST對象 | 代碼對象能夠通過exec語句來執行或者eval()進行求值。 |
dir([object]) | 1、不帶參數時,返回當前範圍內的變量、方法和定義的類型列表;2、帶參數時,返回參數的屬性、方法列表。3、如果參數包含方法dir(),該方法將被調用。當參數爲實例時。4、如果參數不包含dir(),該方法將最大限度地收集參數信息delattr(object, name) 刪除object對象名爲name的屬性 | |
eval(expression [, globals [, locals]]) | 計算表達式expression的值 | |
execfile(filename [, globals [, locals]]) | 用法類似exec(),不同的是execfile的參數filename爲文件名,而exec的參數爲字符串。 | |
filter(function, iterable) | 構造一個序列,等價於[ item for item in iterable if function(item)] | 1、參數function:返回值爲True或False的函數,可以爲None2、參數iterable:序列或可迭代對象 |
getattr(object, name [, defalut]) | 獲取一個類的屬性 | |
globals() | 返回一個描述當前全局符號表的字典 | |
hasattr(object, name) | 判斷對象object是否包含名爲name的特性 | |
hash(object) | 如果對象object爲哈希表類型,返回對象object的哈希值 | |
id(object) | 返回對象的唯一標識 | |
isinstance(object, classinfo) | 判斷object是否是class的實例 | |
issubclass(class, classinfo) | 判斷是否是子類 | |
len(s) | 返回集合長度 | |
locals() | 返回當前的變量列表 | |
map(function, iterable, …) | 遍歷每個元素,執行function操作 | |
memoryview(obj) | 返回一個內存鏡像類型的對象 | |
next(iterator[, default]) | 類似於iterator.next() | |
object() | 基類 | |
property([fget[, fset[, fdel[, doc]]]]) | 屬性訪問的包裝類,設置後可以通過c.x=value等來訪問setter和getter | |
reduce(function, iterable[, initializer]) | 合併操作,從第一個開始是前兩個參數,然後是前兩個的結果與第三個合併進行處理,以此類推 | |
reload(module) | 重新加載模塊 | |
setattr(object, name, value) | 設置屬性值 | |
repr(object) | 將一個對象變換爲可打印的格式 | |
slice() | ||
staticmethod | 聲明靜態方法,是個註解 | |
super(type[, object-or-type]) | 引用父類 | |
type(object) | 返回該object的類型 | |
vars([object]) | 返回對象的變量,若無參數與dict()方法類似 | |
bytearray([source [, encoding [, errors]]]) | 返回一個byte數組 | 1、如果source爲整數,則返回一個長度爲source的初始化數組;2、如果source爲字符串,則按照指定的encoding將字符串轉換爲字節序列;3、如果source爲可迭代類型,則元素必須爲[0 ,255]中的整數;4、如果source爲與buffer接口一致的對象,則此對象也可以被用於初始化bytearray. |
zip([iterable, …]) |
5.IO操作
函數名稱 | 函數功能 | 備註 |
---|---|---|
file(filename [, mode [, bufsize]]) | file類型的構造函數,作用爲打開一個文件,如果文件不存在且mode爲寫或追加時,文件將被創建。 | 添加‘b’到mode參數中,將對文件以二進制形式操作。添加‘+’到mode參數中,將允許對文件同時進行讀寫操作1、參數filename:文件名稱。2、參數mode:’r’(讀)、’w’(寫)、’a’(追加)。3、參數bufsize:如果爲0表示不進行緩衝,如果爲1表示進行行緩衝,如果是一個大於1的數表示緩衝區的大小 。 |
input([prompt]) | 獲取用戶輸入 | 推薦使用raw_input,因爲該函數將不會捕獲用戶的錯誤輸入 |
open(name[, mode[, buffering]]) | 打開文件 | |
打印函數 | ||
raw_input([prompt]) | 設置輸入 | 輸入都是作爲字符串處理 |
6. help()–幫助信息
&內置方法
內置方法 | 說明 |
__init__(self,...) | 初始化對象,在創建新對象時調用 |
__del__(self) | 釋放對象,在對象被刪除之前調用 |
__new__(cls,*args,**kwd) | 實例的生成操作 |
__str__(self) | 在使用print語句時被調用 |
__getitem__(self,key) | 獲取序列的索引key對應的值,等價於seq[key] |
__len__(self) | 在調用內聯函數len()時被調用 |
__cmp__(stc,dst) | 比較兩個對象src和dst |
__getattr__(s,name) | 獲取屬性的值 |
__setattr__(s,name,value) | 設置屬性的值 |
__delattr__(s,name) | 刪除name屬性 |
__getattribute__() | __getattribute__()功能與__getattr__()類似 |
__gt__(self,other) | 判斷self對象是否大於other對象 |
__lt__(slef,other) | 判斷self對象是否小於other對象 |
__ge__(slef,other) | 判斷self對象是否大於或者等於other對象 |
__le__(slef,other) | 判斷self對象是否小於或者等於other對象 |
__eq__(slef,other) | 判斷self對象是否等於other對象 |
__call__(self,*args) | 把實例對象作爲函數調用 |
__init__():
__init__方法在類的一個對象被建立時,馬上運行。這個方法可以用來對你的對象做一些你希望的初始化。注意,這個名稱的開始和結尾都是雙下劃線。
代碼例子:
#!/usr/bin/python # Filename: class_init.py class Person: def __init__(self, name): self.name = name def sayHi(self): print 'Hello, my name is', self.name p = Person('Swaroop') 輸出: |
說明:__init__方法定義爲取一個參數name(以及普通的參數self)。在這個__init__裏,我們只是創建一個新的域,也稱爲name。注意它們是兩個不同的變量,儘管它們有相同的名字。點號使我們能夠區分它們。最重要的是,我們沒有專門調用__init__方法,只是在創建一個類的新實例的時候,把參數包括在圓括號內跟在類名後面,從而傳遞給__init__方法。這是這種方法的重要之處。現在,我們能夠在我們的方法中使用self.name域。這在sayHi方法中得到了驗證。
__new__():
__new__()在__init__()之前被調用,用於生成實例對象.利用這個方法和類屬性的特性可以實現設計模式中的單例模式.單例模式是指創建唯一對象嗎,單例模式設計的類只能實例化一個對象.
#!/usr/bin/python # -*- coding: UTF-8 -*- class Singleton(object): def __init__(self): def __new__(cls, *args, **kwd): # 在__init__之前調用 |
__getattr__()、__setattr__()和__getattribute__():
當讀取對象的某個屬性時,python會自動調用__getattr__()方法.例如,fruit.color將轉換爲fruit.__getattr__(color).當使用賦值語句對屬性進行設置時,python會自動調用__setattr__()方法.__getattribute__()的功能與__getattr__()類似,用於獲取屬性的值.但是__getattribute__()能提供更好的控制,代碼更健壯.注意,python中並不存在__setattribute__()方法.
代碼例子:
#!/usr/bin/python # -*- coding: UTF-8 -*- class Fruit(object): def __setattr__(self, name, value): if __name__ == "__main__": |
__getitem__():
如果類把某個屬性定義爲序列,可以使用__getitem__()輸出序列屬性中的某個元素.假設水果店中銷售多鍾水果,可以通過__getitem__()方法獲取水果店中的沒種水果
代碼例子:
#!/usr/bin/python # -*- coding: UTF-8 -*- class FruitShop: if __name__ == "__main__": 輸出爲: |
__str__():
__str__()用於表示對象代表的含義,返回一個字符串.實現了__str__()方法後,可以直接使用print語句輸出對象,也可以通過函數str()觸發__str__()的執行.這樣就把對象和字符串關聯起來,便於某些程序的實現,可以用這個字符串來表示某個類
代碼例子:
#!/usr/bin/python # -*- coding: UTF-8 -*- class Fruit: if __name__ == "__main__": |
__call__():
在類中實現__call__()方法,可以在對象創建時直接返回__call__()的內容.使用該方法可以模擬靜態方法
代碼例子:
#!/usr/bin/python # -*- coding: UTF-8 -*- class Fruit: grow = Growth() # 調用Growth(),此時將類Growth作爲函數返回,即爲外部類Fruit定義方法grow(),grow()將執行__call__()內的代碼 |
匿名函數
python 使用 lambda 來創建匿名函數。
所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數。
lambda 只是一個表達式,函數體比 def 簡單很多。
lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
lambda 函數擁有自己的命名空間,且不能訪問自有參數列表之外或全局命名空間裏的參數。
雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增加運行效率。
語法
lambda 函數的語法只包含一個語句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
如下實例:
#!/usr/bin/python3 # 可寫函數說明sum = lambda arg1, arg2: arg1 + arg2; # 調用sum函數print ("相加後的值爲 : ", sum( 10, 20 ))print ("相加後的值爲 : ", sum( 20, 20 ))
轉載至:http://xukaizijian.blog.163.com/blog/static/170433119201111894228877/
http://blog.csdn.net/jinxiaonian11/article/details/53518354