
python内置函數
https://www.runoob.com/python/python-built-in-functions.html
abs():絕對值函數
描述:傳回函數的絕對值
使用:ads(x)
x 是數字,傳回的是x的絕對值
divmod():傳回除數餘數函數
描述:把除數和餘數結合起來,傳回一個包含商和餘數的元祖(a//b, a%b)
文法:divmod(a, b)
a,b都是數字,傳回的是(a//b, a%b)
python2.3版本之前不允許處理複數
input():接收輸入值函數
描述:用于接收輸入的資料
python不同版本input函數的差別
Python3.x 中 去掉了raw_input()函數。input() 函數接受一個标準輸入資料,傳回為 string 類型。
python2.x 中 raw_input() 将所有輸入作為字元串看待,傳回字元串類型。 input() 在輸入數字時,它傳回所輸入的數字的類型( int, float );輸入字元串時要求加"",傳回字元串類型。
文法:x = input([prompt])
prompt是提示資訊,可填可不填
open():打開檔案函數
描述:用于打開一個檔案,建立一個file對象
文法:open(name[, mode[, buffering]])
name:包含檔案名的字元串值
mode : mode 決定了打開檔案的模式:隻讀,寫入,追加等。所有可取值見如下的完全清單。這個參數是非強制的,預設檔案通路模式為隻讀®
r 隻讀;rb 二進制讀;r+/w+讀寫; rb+/wb+二進制讀寫;w 隻寫;wb 二進制寫
a 追加;ab 二進制追加;a+/ab+ 檔案存在則追加,檔案不存在則讀寫
buffering : 如果 buffering 的值被設為 0,就不會有寄存。如果 buffering 的值取 1,通路檔案時會寄存行。如果将 buffering 的值設為大于 1 的整數,表明了這就是的寄存區的緩沖大小。如果取負值,寄存區的緩沖大小則為系統預設。
檔案對象方法
- file.read([size]):size 未指定則傳回整個檔案,如果檔案大小 >2 倍記憶體則有問題,f.read()讀到檔案尾時傳回""(空字串)。
- file.readline():傳回一行。
- file.readlines([size]) :傳回包含size行的清單, size 未指定則傳回全部行。
- for line in f: print line :通過疊代器通路。
- f.write(“hello\n”):如果要寫入字元串以外的資料,先将他轉換為字元串。
- f.tell():傳回一個整數,表示目前檔案指針的位置(就是到檔案頭的比特數)。
- f.seek(偏移量,[起始位置]):用來移動檔案指針。
- 偏移量: 機關為比特,可正可負
- 起始位置: 0 - 檔案頭, 預設值; 1 - 目前位置; 2 - 檔案尾
- f.close() 關閉檔案
staticmethod() :傳回函數靜态方法
描述:傳回函數的靜态方法
文法:staticmethod(function)
參數是一個函數,可不填
all() :判斷參數是否都是True
描述:用于判斷給定的可疊代參數 iterable 中的所有元素是否都為 TRUE,如果是傳回 True,否則傳回 False。(元素除了是 0、空清單、空元祖、None、False 外都算 True。)
文法:all(iterable)
iterable – 元組或清單,傳回布爾值
enumerate(): 将可疊代對象組合成索引序列
描述:用于将一個可周遊的資料對象(如清單、元組或字元串)組合為一個索引序列,同時列出資料和資料下标,一般用在 for 循環當中。Python 2.3. 以上版本可用,2.6 添加 start 參數。
文法:enumerate(sequence, [start=0])
sequence – 一個序列、疊代器或其他支援疊代對象。
start – 下标起始位置。
傳回 enumerate(枚舉) 對象。
int() :将字元串或數字轉化為整型
描述:用于将一個字元串或數字轉化為整數類型
文法:int(x, base = 10)
x – 字元串或數字,
base – 進制數,預設十進制。
ord():傳回參數的ASCLL碼或Unicode 數值
描述:ord() 函數是 chr() 函數(對于8位的ASCII字元串)或 unichr() 函數(對于Unicode對象)的配對函數,它以一個字元(長度為1的字元串)作為參數,傳回對應的 ASCII 數值,或者 Unicode 數值,如果所給的 Unicode 字元超出了你的 Python 定義範圍,則會引發一個 TypeError 的異常。
文法:ord©
參數c是字元,傳回的是十進制整數
str() :轉化為字元串
描述:将對象轉化為友善閱讀的字元串格式
文法:str(objrct)
object是一個對象,傳回值是一個字元串
any():判定參數是否都是False
描述:any() 函數用于判斷給定的可疊代參數 iterable 是否全部為 False,則傳回 False,如果有一個為 True,則傳回 True。(元素除了是 0、空、FALSE 外都算 TRUE。)
文法:any(iterable)
iterable – 元組或清單。
和all()差別
all()函數是參數隻要有一個為false,就傳回false,否則傳回true
any()函數是參數隻要有一個為turn,就傳回true,否則傳回false
eval():傳回表達式的計算結果
描述:eval() 函數用來執行一個字元串表達式,并傳回表達式的值。
文法:eval(expression[, globals[, locals]])
expression – 表達式。
globals – 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。
locals – 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。
isinstance():判斷變量是否是該類型
描述:isinstance() 函數來判斷一個對象是否是一個已知的類型,類似 type()。
文法:isinstance(object, classinfo)
object – 執行個體對象
classinfo – 可以是直接或間接類名、基本類型或者由它們組成的元組
傳回布爾值
isinstance()和type()函數的差別
type() 不會認為子類是一種父類類型,不考慮繼承關系
isinstance() 會認為子類是一種父類類型,考慮繼承關系
pow():幂計算
描述:方法傳回方法傳回x的y次方的值。
文法:
通過導入math子產品,
import math
math.pow(x,y)
内置的pow函數
pow(x, y[, z])
差別:pow() 通過内置的方法直接調用,内置方法會把參數作為整型,而 math 子產品則會把參數轉換為 float
sum():求和
描述:對可疊代對象進行求和,傳回計算結果
文法:sum(iterable[, start])
iterable – 可疊代對象,如:清單、元組、集合。
start – 指定相加的參數,如果沒有設定這個值,預設為0。
basestring():
描述:basestring() 方法是 str 和 unicode 的超類(父類),也是抽象類,是以不能被調用和執行個體化,但可以被用來判斷一個對象是否為 str 或者 unicode 的執行個體,isinstance(obj, basestring) 等價于 isinstance(obj, (str, unicode))。
文法:basestring() ,沒有參數和傳回值
execfile():執行檔案
描述:execfile() 函數可以用來執行一個檔案。(可用于執行一個python檔案,傳回該檔案的執行結果)
文法:execfile(filename[, globals[, locals]])
filename – 檔案名。
傳回表達式執行結果。
issubclass() :判斷參數 class 是否是類型參數 classinfo 的子類
描述:issubclass() 方法用于判斷參數 class 是否是類型參數 classinfo 的子類
文法:issubclass(class, classinfo)
class – 類。
classinfo – 類
如果 class 是 classinfo 的子類傳回 True,否則傳回 False
print():輸出函數
描述:print() 方法用于列印輸出,最常見的一個函數,print 在 Python3.x 是一個函數,但在 Python2.x 版本不是一個函數,隻是一個關鍵字。
文法:print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout)
objects – 複數,表示可以一次輸出多個對象。輸出多個對象時,需要用 , 分隔。
sep – 用來間隔多個對象,預設值是一個空格。
end – 用來設定以什麼結尾。預設值是換行符 \n,我們可以換成其他字元串。
file – 要寫入的檔案對象。
super():調用父類的方法
描述:super() 函數是用于調用父類(超類)的一個方法。
super 是用來解決多重繼承問題的,直接用類名調用父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查找順序(MRO)、重複調用(鑽石繼承)等種種問題。
MRO 就是類的方法解析順序表, 其實也就是繼承父類方法時的順序表。
文法:super(type[, object-or-type])
type – 類。
object-or-type – 類,一般是 self
Python3.x 和 Python2.x 的一個差別是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx
bin():傳回整數的二進制表示
描述:bin() 傳回一個整數 int 或者長整數 long int 的二進制表示
文法:bin(x)
x – int 或者 long int 數字
傳回二進制字元串
file():建立file對象
描述:file() 函數用于建立一個 file 對象,它有一個别名叫 open(),更形象一些,它們是内置函數。參數是以字元串的形式傳遞的。
文法:file(name[, mode[, buffering]])
name – 檔案名
mode – 打開模式
buffering – 0 表示不緩沖,如果為 1 表示進行行緩沖,大于 1 為緩沖區大小。
傳回檔案對象
iter():用來生成疊代器
描述:iter() 函數用來生成疊代器
文法:iter(object[, sentinel])
object – 支援疊代的集合對象。
sentinel – 如果傳遞了第二個參數,則參數 object 必須是一個可調用的對象(如,函數),此時,iter 建立了一個疊代器對象,每次調用這個疊代器對象的__next__()方法時,都會調用 object。
傳回疊代器對象
舉例
lst = [1, 2, 3]
for i in iter(lst):
print(i)
property():在新式類中傳回屬性值。
描述:property() 函數的作用是在新式類中傳回屬性值。
文法:property([fget[, fset[, fdel[, doc]]]])
fget – 擷取屬性值的函數
fset – 設定屬性值的函數
fdel – 删除屬性值函數
doc – 屬性描述資訊
傳回新式類屬性
tuple():轉化為元祖
描述: tuple() 函數将清單轉換為元組
文法:tuple(seq)
seq – 要轉換為元組的序列(針對字典,會傳回字典的key組成的tuple)
傳回元祖
bool():轉化為布爾型
描述:bool() 函數用于将給定參數轉換為布爾類型,如果沒有參數,傳回 False。
bool 是 int 的子類。
文法:bool([x])
x – 要進行轉換的參數
傳回 Ture 或 False
filter():過濾函數
描述:filter() 函數用于過濾序列,過濾掉不符合條件的元素,傳回由符合條件元素組成的新清單
該接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,然後傳回 True 或 False,最後将傳回 True 的元素放到新清單中
文法:filter(function, iterable)
function – 判斷函數。
iterable – 可疊代對象
Pyhton2.7 傳回清單,Python3.x 傳回疊代器對象
len():傳回長度
描述:len() 方法傳回對象(字元、清單、元組等)長度或項目個數。
文法:len( s )
range():生成整數清單
描述:range() 函數可建立一個整數清單,一般用在 for 循環中
文法:range(start, stop[, step])
start: 計數從 start 開始。預設是從 0 開始。例如range(5)等價于range(0, 5);
stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
step:步長,預設為1。例如:range(0, 5) 等價于 range(0, 5, 1)
即左包含右不包含
tpye():傳回對象類型
描述:type() 函數如果你隻有第一個參數則傳回對象的類型,三個參數傳回新的類型對象。
文法:type(object)
傳回對象的類型
文法:type(name, bases, dict)
name – 類的名稱。
bases – 基類的元組。
dict – 字典,類内定義的命名空間變量。
傳回新的類型對象
bytearray() :傳回一個新位元組數組
描述:bytearray() 方法傳回一個新位元組數組。這個數組裡的元素是可變的,并且每個元素的值範圍: 0 <= x < 256。
文法:bytearray([source[, encoding[, errors]]])
如果 source 為整數,則傳回一個長度為 source 的初始化數組;
如果 source 為字元串,則按照指定的 encoding 将字元串轉換為位元組序列;
如果 source 為可疊代類型,則元素必須為[0 ,255] 中的整數;
如果 source 為與 buffer 接口一緻的對象,則此對象也可以被用于初始化 bytearray。
如果沒有輸入任何參數,預設就是初始化數組為0個元素。
float():轉化為浮點數
描述:用于将整數和字元串轉換成浮點數
文法:float([x])
list():轉化為清單
描述:list() 方法用于将元組轉換為清單。
文法:list( tup )
raw_input() :擷取控制台的輸入
描述:raw_input() 用來擷取控制台的輸入
将所有輸入作為字元串看待,傳回字元串類型
Python3.x 中 去掉了raw_input()函數
input() 和 raw_input() 這兩個函數均能接收 字元串 ,但 raw_input() 直接讀取控制台的輸入(任何類型的輸入它都可以接收)。而對于 input() ,它希望能夠讀取一個合法的 python 表達式,即你輸入字元串的時候必須使用引号将它括起來,否則它會引發一個 SyntaxError 。
文法:raw_input([prompt])
prompt: 可選,字元串,可作為一個提示語
unichr():傳回unicode字元
描述:unichr() 函數 和 chr()函數功能基本一樣, 隻不過是傳回 unicode 的字元
文法:unichr(i)
i – 可以是10進制也可以是16進制的形式的數字。
傳回 unicode 的字元
callable() :檢查對象是否可調用
描述:callable() 函數用于檢查一個對象是否是可調用的。如果傳回 True,object 仍然可能調用失敗;但如果傳回 False,調用對象 object 絕對不會成功。
對于函數、方法、lambda 函式、 類以及實作了 __call__方法的類執行個體, 它都傳回 True。
文法:callable(object)
object – 對象
format(): 格式化函數
描述:Python2.6 開始,新增了一種格式化字元串的函數 str.format(),它增強了字元串格式化的功能。
基本文法是通過 {} 和 : 來代替以前的 % 。
format 函數可以接受不限個參數,位置可以不按順序。
也可以設定參數,也可以傳入參數
locals() :傳回目前位置的全部局部變量
描述:locals() 函數會以字典類型傳回目前位置的全部局部變量
對于函數, 方法, lambda 函式, 類, 以及實作了 __call__方法的類執行個體, 它都傳回 True。
文法:locals()
沒有參數
傳回字典類型的局部變量
reduce() :對參數元素進行累積
描述:reduce() 函數會對參數序列中元素進行累積,函數将一個資料集合(連結清單,元組等)中的所有資料進行下列操作:用傳給 reduce 中的函數 function(有兩個參數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個資料用 function 函數運算,最後得到一個結果
文法:reduce(function, iterable[, initializer])
function – 函數,有兩個參數
initializer – 可選,初始參數
傳回函數計算結果
chr():傳回參數對應的字元
描述:chr() 用一個範圍在 range(256)内的(就是0~255)整數作參數,傳回一個對應的字元
文法: chr(i)
i – 可以是10進制也可以是16進制的形式的數字
傳回值是目前整數對應的 ASCII 字元
frozenset() 傳回當機的集合
描述:frozenset() 傳回一個當機的集合,當機後集合不能再添加或删除任何元素
文法:frozenset([iterable])
iterable – 可疊代的對象,比如清單、字典、元組等等
傳回新的 frozenset 對象,如果不提供任何參數,預設會生成空集合
long() :轉換為長整型
描述:long() 函數将數字或字元串轉換為一個長整型
文法:long(x, base=10)
x – 字元串或數字
base – 可選,進制數,預設十進制
reload():重新載入之前載入的子產品
描述:reload() 用于重新載入之前載入的子產品
文法:reload(module)
module – 子產品對象
傳回子產品對象
vars() :對象的屬性和屬性值的字典對象
描述:vars() 函數傳回對象object的屬性和屬性值的字典對象
文法:vars([object])
傳回對象object的屬性和屬性值的字典對象,如果沒有參數,就列印目前調用位置的屬性和屬性值 類似 locals()
classmethod 修飾符
描述:classmethod 修飾符對應的函數不需要執行個體化,不需要 self 參數,但第一個參數需要是表示自身類的 cls 參數,可以來調用類的屬性,類的方法,執行個體化對象等
文法:@classmethod
傳回函數的類方法
getattr() :傳回對象屬性值
描述:getattr() 函數用于傳回一個對象屬性值
文法:getattr(object, name[, default])
object – 對象。
name – 字元串,對象屬性。
default – 預設傳回值,如果不提供該參數,在沒有對應屬性時,将觸發 AttributeError
傳回對象屬性值
map():對指定序列做映射
描述:map() 會根據提供的函數對指定序列做映射。第一個參數 function 以參數序列中的每一個元素調用 function 函數,傳回包含每次 function 函數傳回值的新清單。
文法:map(function, iterable, …)
function – 函數
iterable – 一個或多個序列
Python 2.x 傳回清單,Python 3.x 傳回疊代器
repe():轉化為字元串
描述:将對象轉化為供解釋器讀取的形式
文法:repr(object)
傳回一個對象的 string 格式
xrange():生成器
描述:xrange() 函數用法與 range 完全相同,所不同的是生成的不是一個數組,而是一個生成器。
即range()傳回的一次生成全部,xrange()是用一個生成一個,會比較省記憶體
文法:xrange(stop) xrange(start, stop[, step])
start: 計數從 start 開始。預設是從 0 開始。例如 xrange(5) 等價于 xrange(0, 5)
stop: 計數到 stop 結束,但不包括 stop。例如:xrange(0, 5) 是 [0, 1, 2, 3, 4] 沒有 5
step:步長,預設為1。例如:xrange(0, 5) 等價于 xrange(0, 5, 1)
cmp():比較對象大小
描述:cmp(x,y) 函數用于比較2個對象,如果 x < y 傳回 -1, 如果 x == y 傳回 0, 如果 x > y 傳回 1
文法:cmp( x, y )
x,y都是數值表達式
傳回-1,0,1
globals():傳回目前位置的全部全局變量
描述:globals() 函數會以字典類型傳回目前位置的全部全局變量
文法:globals()
和locals()用法一緻
max() :傳回給定參數的最大值
描述:max() 方法傳回給定參數的最大值,參數可以為序列
文法:max( x, y, z, … )
x, y, z, …數值表達式
傳回一個最大值
reverse():反轉清單
描述:reverse() 函數用于反向清單中元素
文法:list.reverse()
該方法沒有傳回值,但是會對清單的元素進行反向排序
zip():壓縮(将元素對應壓縮成清單嵌套元祖)
描述:zip() 函數用于将可疊代的對象作為參數,将對象中對應的元素打包成一個個元組,然後傳回由這些元組組成的清單。
如果各個疊代器的元素個數不一緻,則傳回清單長度與最短的對象相同,利用 * 号操作符,可以将元組解壓為清單。
zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中為了減少記憶體,zip() 傳回的是一個對象。如需展示清單,需手動 list() 轉換。
文法:zip([iterable, …])
iterabl – 一個或多個疊代器
傳回元組清單
與 zip 相反,*zipped 可了解為解壓,傳回二維矩陣式
zip(*zipped)
compile() :将字元串編譯為位元組代碼
描述:compile() 函數将一個字元串編譯為位元組代碼。
文法:compile(source, filename, mode[, flags[, dont_inherit]])
source – 字元串或者AST(Abstract Syntax Trees)對象。。
filename – 代碼檔案名稱,如果不是從檔案讀取代碼則傳遞一些可辨認的值。
mode – 指定編譯代碼的種類。可以指定為 exec, eval, single。
flags – 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。。
flags和dont_inherit是用來控制編譯源碼時的标志
傳回表達式執行結果
hasattr() :判斷對象是否包含對應的屬性
描述:hasattr() 函數用于判斷對象是否包含對應的屬性
文法:hasattr(object, name)
name – 字元串,屬性名
如果對象有該屬性傳回 True,否則傳回 False
memoryview() :傳回給定參數的記憶體檢視對象(Momory view)
描述:memoryview() 函數傳回給定參數的記憶體檢視對象(Momory view)
所謂記憶體檢視對象,是指對支援緩沖區協定的資料進行包裝,在不需要複制對象基礎上允許Python代碼通路
文法:memoryview(obj)
obj – 對象
round() :浮點數的四舍五入值
描述:round() 方法傳回浮點數x的四舍五入值
文法:round( x [, n] )
x --數值
n – 保留小數點位數,預設0
傳回浮點數x的四舍五入值
####__import__():動态加載類和函數
描述:__import__() 函數用于動态加載類和函數 。如果一個子產品經常變化就可以使用 __import__() 來動态載入。
文法:__import__(name[, globals[, locals[, fromlist[, level]]]])
name – 子產品名
傳回元祖清單
complex():建立/轉化複數
描述:complex() 函數用于建立一個值為 real + imag * j 的複數或者轉化一個字元串或數為複數。如果第一個參數為字元串,則不需要指定第二個參數
文法:class complex([real[, imag]])
real – int, long, float或字元串
imag – int, long, float
hash():擷取哈希值
描述:hash() 用于擷取取一個對象(字元串或者數值等)的哈希值
文法:hash(object)
傳回哈希值
min() :傳回最小值
描述:min() 方法傳回給定參數的最小值,參數可以為序列
文法:min( x, y, z, … )
傳回給定參數的最小值
set() :建立一個無序不重複元素集(set:組)
描述:set() 函數建立一個無序不重複元素集,可進行關系測試,删除重複資料,還可以計算交集、差集、并集等。
文法:set([iterable])
delattr():删除屬性
描述:用于删除屬性。delattr(x,‘foobar’)相等于del x.foobar
文法:delattr(object, name)
name – 必須是對象的屬性
help() :檢視函數或子產品用途的詳細說明
描述:help() 函數用于檢視函數或子產品用途的詳細說明
文法:help([object])
傳回對象幫助資訊
next():用于疊代器的傳回數值
描述:傳回疊代器的下一個項目
文法:next(iterator[, default])
iterator – 可疊代對象
default – 可選,用于設定在沒有下一個元素時傳回該預設值,如果不設定,又沒有下一個元素則會觸發 StopIteration 異常
setattr() :設定屬性值
描述:setattr() 函數對應函數 getattr(),用于設定屬性值,該屬性不一定是存在的
文法:setattr(object, name, value)
name – 字元串,對象屬性
value – 屬性值
dict() :建立字典
描述:dict() 函數用于建立一個字典
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
參數
**kwargs – 關鍵字
mapping – 元素的容器
hex() :将10進制整數轉換成16進制
描述:hex() 函數用于将10進制整數轉換成16進制,以字元串形式表示
文法:hex(x)
slice() :實作切片對象
描述:slice() 函數實作切片對象,主要用在切片操作函數裡的參數傳遞
class slice(stop)
class slice(start, stop[, step])
start – 起始位置
stop – 結束位置
step – 間距
傳回一個切片對象
dir():
描述:dir() 函數不帶參數時,傳回目前範圍内的變量、方法和定義的類型清單;帶參數時,傳回參數的屬性、方法清單。如果參數包含方法__dir__(),該方法将被調用。如果參數不包含__dir__(),該方法将最大限度地收集參數資訊
文法:dir([object])
object – 對象、變量、類型
傳回子產品的屬性清單
id():擷取對象記憶體位址
描述:id() 函數用于擷取對象的記憶體位址
文法:id([object])
傳回對象的記憶體位址
oct() :将整數轉換成8進制字元串
描述:oct() 函數将一個整數轉換成8進制字元串
文法:oct(x)
sorted() :排序
描述:sorted() 函數對所有可疊代的對象進行排序操作
文法:sorted(iterable[, cmp[, key[, reverse]]])
cmp – 比較的函數,這個具有兩個參數,參數的值都是從可疊代對象中取出,此函數必須遵守的規則為,大于則傳回1,小于則傳回-1,等于則傳回0
key – 主要是用來進行比較的元素,隻有一個參數,具體的函數的參數就是取自于可疊代對象中,指定可疊代對象中的一個元素來進行排序
reverse – 排序規則,reverse = True 降序 , reverse = False 升序(預設)
傳回重新排序的清單
sort 與 sorted 差別
sort 是應用在 list 上的方法,sorted 可以對所有可疊代的對象進行排序操作
list 的 sort 方法傳回的是對已經存在的清單進行操作,無傳回值,而内建函數 sorted 方法傳回的是一個新的 list,而不是在原來的基礎上進行的操作
exec 内置語句
描述:exec 執行儲存在字元串或檔案中的Python語句,相比于 eval,exec可以執行更複雜的 Python 代碼
需要說明的是在 Python2 中exec不是函數,而是一個内置語句(statement),但是Python 2中有一個 execfile() 函數。可以了解為 Python 3 把 exec 這個 statement 和 execfile() 函數的功能夠整合到一個新的 exec() 函數中去了
文法:exec obj
obj – 要執行的表達式
exec 傳回值永遠為 None