一篇文章弄懂Python中的內建函數
前言
python內建函數指的是python自帶的函數,這種函數不需要定義,並且不同的內建函數具有不同的功能,可以直接使用。
A類
abs() 函數,返回數字的絕對值。
語法:abs(x)
參數 x — 數值表達式
函數返回 x(數字)的絕對值;
例子1:
all() 函數,判斷給定的可迭代參數 ble 中的元素是否都為 True,若是返回 True,反之返回 False;
元素除瞭是 0、空、False、None外 都算 True;
語法:all(iterable)
參數: iterable — 元組或列表
若 iterable 的所有元素不為 0、‘ ‘、False、或 ble 為空,函數返回 True,反之返回 False;
註意: 空元組、空列表返回值為 True,需要特別註意;
例子2:
any() 函數,判斷給定的可迭代參數 ble 是否全部為 False,若是返回 False,若有一個為 True,返回 True;
元素除瞭是 0、空、False 外都算是 True;
語法:any(iterable)
參數:iterable — 元組或列表
若都為 空、0、False ,返回 False,若不都為 空、0、False,返回 True ;
例子3:
B類
basestring() 方法,是 str 和 unicode 的超類(父類),也是抽象類,不能被調用和實例化,但可用來判斷一個對象是否為 str 或 unicode 的實例;isinstance(obj,(str,unicode))
等價於 isinstance(obj,bsestring)
;
語法:basestring()
例子4:
註意:Python 3 不支持 basestring()函數,應改用 str()函數。
bin() 函數,返回一個整數 int 或長整數 long int 的二進制表示。
語法:bin(x)
參數:x — int 或 long int 數字
返回 x 的二進制表示;
例子5:
bool() 函數,將給定參數轉換為佈爾類型,若沒有參數,返回 false;
bool 是 int 的子類;
語法:calss bool([x])
參數:x — 要進行轉換的參數
返回 True 或 False;
例子6:
bytearray() 函數,返回一個新字節數組;數組的元素是可變的,每個元素的值范圍 0 <= x <256 ;
語法:calss bytearray([source[,encoding[,errors]]])
參數:若 source 為整數,返回一個長度為 source 的初始化數組;
若 source 為字符串,按照指定的 encoding 將字符串轉換為字節序列;
若 source 為可迭代類型,元素必須為 [0,256] 中的整數;
若 source為與 buffer 接口一致的對象,此對象也可被用於初始化 bytearray ;
若沒有輸入任何參數,默認就是初始化數組為 0 個元素;
返回新字節數組。
例子7:
C類
callable() 函數,檢查一個對象是否為可調用;若返回 True ,ble 仍可能調用失敗;若返回 False ,調用對象 ble 肯定不會成功。
函數、方法、lambda 函式、類及實現瞭 call 方法的類實例,都會返回 True。
語法:callable(object)
參數: object — 對象
當對象可調用時返回 True,反之返回 False;
例子8:
chr() 函數,用一個范圍在 range(0~256)內的整數作為參數,返回一個對應的字符;
語法:chr(i)
參數:i — 為10進制或16進制的形式的數字
返回值是當前整數對應的 ASCII 字符;
例子9:
classmethod 修飾符,對應的函數不用實例化,不需要 self 參數,但第一個參數需要是表示自身類的 cls 參數,可用來調用類的屬性,類的方法,實例化對象等;
語法:classmethod
返回函數的類方法;
例子10:
compile() 函數,講一個字符串編譯為字節代碼。
語法:compile(source,filename,mode[,flags[,dont_inherit]])
參數:source — 字符串或 AST(Abstract Syntx Trees)對象;
filename — 代碼文件名稱,若不是從文件讀取代碼則傳遞一些可辨認的值;
mode — 指定編譯代碼的種類。可指定為 exec,eval,single;
flags — 變量作用域,局部命名空間,若被提供,可以是任何映射對象;
flags 和 dont_inherit 是用來控制編譯源碼時的標志;
返回表達式執行結果;
例子12:
cmplex() 函數,創建一個值為 real + imag * j 的復數或轉化一個字符換或數為復數。若第一個參數為字符串,則不需要指定第二個參數;
語法:class complex([real[,imag]])
參數:real — int、long、float 或 字符串;
imag — int、long、float;
返回一個復數;
例子13:
註意: ‘3+8j’ 的 ‘+’ 號兩邊不能有 空格,否則會報錯
D類
delattr() 函數,刪除屬性;
delattr( x,‘foobar’ ) 等價於 del x. foobar ;
語法:delattr(object.name)
參數:object — 對象;
name — 必須是對象的屬性;
例子14:
dict() 函數,創建一個字典。
語法:class dick(**kwargs) class dict(mpping,**kwarg) class dict(iterable,**kwarg)
參數:**kwarge — 關鍵字;
mapping — 元素的容器;
iterable — 可迭代對象;
返回一個字典;
例子15:
**dir()**函數,不帶參數時,返回當前范圍內的變量、方法 和 定義的類型列表;帶參數時,返回參數的 屬性、方法、列表。若參數包含方法 __dir()__
,該方法將被調用;若參數不含方法 dir() ,該方法將最大限度地收集參數信息;
語法:dir([object])
參數:object — 對象、變量、類型
返回模塊的屬性列表;
例子16:
divmond() 函數,把除法和餘數運算結合起來,返回一個包含商和餘數的元組(a // b, a%b);
語法:divmod(a,b)
參數:a — 數字 ,b — 數字;
例子17:
我的進行復數運算,報錯,可能是有些Python 版本不支持負數運算!
E類
enumerate() 函數,將一個可遍歷的數據對象(如 元組、列表或字符串)組合成一個索引序列,同時列出數據和數據下標,常用在 for 循環中;
語法:enumerate(sequence,[start = 0])
參數: sequence — 一個序列、迭代器 或其他可支持迭代的對象;
start — 下標起始位置;
返回 enumerate(枚舉)對象;
例子18:
eval() 函數,執行一個字符串表達式,並返回表達式的值;
語法:eval(expression[, globals[, locals]])
參數:expression — 表達式;
globals — 變量作用域,全局命名空間,若被提供,則必須是一個字典對象;
locals — 變量作用域,局部命名空間,若被提供,可為任何映射對象;
返回表達式計算的結果;
例子19:
excfile() 函數,執行一個文件。
語法:excfile(filename[, globals[, locals]])
參數:filename — 文件名;
globals — 變量作用域,全局命名空間,若被提供,不需是一個字典對象;
locals —變量作用域,局部命名空間,若被提供,可是任何映射對象。
返回表達式執行結束;
例子20:
execfile() 函數在 Python3 中用不瞭,可用 exec () 函數替代;
語法:exec(open("ble").read)
;
註意:運用 exec() 函數時,必須確保文件時在 Python 解釋器當前的目錄下,若不在,就算代碼沒錯也會報異常;所以要先import os
,調用 os 模塊,再os.chdir("文件所在目錄")
,再用 exec() 函數打開文件;
F類
file() 函數,創建一個 file 對象,也可以叫 open(),都是內置函數;參數以字符串形式傳遞;
語法:file(name,[, mode[, buffering]])
參數:name — 文件名;
mode — 打開模式;
buffering — 0 表示不緩沖,如果為 1 表示進行行緩沖,大於 1 為緩沖區大小;
例子21:
filter() 函數,過濾序列,過濾不符合條件的元素,返回由符合條件元素組成的列表;接受兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判斷,然後返回 True 或 False,最後將返回 True 的元素存放到新列表中;
Python 3.x 返回迭代器對象;
語法:filter(functin , iterable)
參數:function — 判斷函數;
iterable — 可迭代對象;
返回列表;
例子22:
format() 函數,接受不限個參數,位置隨意;str.format()
,格式化字符串,函數增強瞭字符串格式化的功能;
語法:用 {} 、: 代替 %;
例子23:
str.format() 格式化數字的方法如下所示:
frozenset() 函數,返回一個凍結的集合,凍結點後的集合不能再添加、刪除任何元素;
語法:class frozenset([bba])
返回新的 ble 對象,若不提供任何參數,默認生成空集合;
例子24:
G類
getattr() 函數,返回一個對象屬性值;
語法:getattr(object,name [, default])
參數:object — 對象;
name — 字符串,對象屬性;
default — 默認返回值,若不提供該參數,沒有隊形屬性時,會出發 AttributeError;
返回對象屬性;
例子25:
globals() 函數,以字典類型返回當前位置的全局變量;
語法:flobals()
返回全局變量的字典;
例子26:
H類
hasattr() 函數,判斷對象是否包含對應的屬性;
語法:hasattr(object,name)
參數:object — 對象;
name — 字符串,屬性名;
若對象有該屬性會返回 True,反之返回 False;
例子27:
hash() 函數,獲取一個對象(字符串或數值等)的哈希值;
語法:hash(object)
參數:object — 對象;
返回對象的哈希值;
例子28:
help() 函數,查看函數或塊等的幫助說明;
語法:help([object])
參數:object — 對象
例子29:
hex() 函數,將十進制整數轉換為十六進制,以字符串形式表示;
語法:hex(x)
參數:x — 十進制整數
例子30:
I類
id() 函數,返回對象的唯一標識符,標識符是一個整數;
CPython(即官方版本解釋器,這解釋器是用C語言開發的)中 id() 函數用於獲取對象的內存地址;
語法:id([object])
參數:object — 對象
返回對象的內存地址;
例子31:
input() 函數,接收一個標準輸入數據,返回 string 類型;
input(),能夠讀取一個合法的 Python 表達式(即輸入的字符串必須括起來,否者會拋出異常);Python 3 裡的 input() 默認接受的是 str 類型;
語法:input([prompt])
參數:prompt — 提示信息
註意:在 Python 3.8.0 中已經取消瞭 raw_iput;
例子32:
int() 函數,將一個數字或字符串轉換為整型, 返回整型數據;
語法:class int(z,base = 10)
參數:z — 數字或字符串;
base — 進制數,默認十進制;
例子33:
isinstance() 函數,判斷一個對象是否是一個已知的類型,和 tpye() 類似;
isinstance() 與 tpye() 的區別:
tyep() 不會認為子類是一種父類類型,不考慮繼承關系;
ininstance()會認為子類是一種父類類型,考慮繼承關系;
語法:isinstance(object,classinfo)
參數:object — 實例對象;
classinfo — 可是直接或間接類名、基本類型或由他們組成的元組;
若對象的類型與參數的類型(classionfo)相同則返回 True,反之返回 False;
例子34:
issubclass() 函數,判斷參數 class 師傅是類型參數 classinfo 的子類;
語法:issubclass(class,classinfo)
參數:class — 類;
classinfo — 類;
若 class 是 classinfo 的子類返回 True,否則返回 False;
例子35:
iter() 函數,生成迭代器;
語法:iter(object[,sentinel])
參數:object — 支持迭代的集合對象;
sentine — 若出傳遞第二個參數,參數 object 必須是一個可調用的對象(如:函數);iter() 創建瞭一個迭代器對象,每次調用這個對象的 __next__
方法時,都會 object;
例子36:
L類
len() 函數,返回對象(字符、列表、元組等)長度或項目的元素個數;
語法:len(n)
參數:n — 對象
例子37:
list() 函數,將元組轉換為列表(元組跟列表非常類似,區別於元素的元組不能修改,元組是放在括號中,列表是放於方括號中);
語法:list(tuple)
參數:tuple — 要轉換為列表的元組
例子38:
locals() 函數,以字典類型返回當前位置的全部局部變量;對於函數、方法、lambda 函數、類,以及實現瞭__call__
方法的類實例,都返回 True;
語法:locals()
返回字典類型的局部變量;
例子39:
M類
map() 函數,根據提供的函數指定序列做映射;
第一個參數 function 以參數序列中的每一個元素調用 funciton 函數,返回包含每次 function 函數返回值的新列表;
語法:map(function,iterable, ...)
參數:function — 函數;
iterable — 一個或多個序列;
返回迭代器;
例子41:
max() 函數,返回給定參數的最大值,參數可以是序列;
語法:max(x,y,z, ... )
參數:x、y、z — 數值表達式
例子42:
memoryview() 函數,返回給定參數的內存查看對象(memory view);內存查看對象,是指對支持緩沖區協議的數據進行包裝,在不需要復制對象的基礎上允許 Python 代碼訪問;
語法:memoryview(obj)
參數:obj — 對象;
返回元組列表;
例子43:
min() 函數,返回給定參數的最小值,參數可以是序列;
語法:min(x,y,z,... )
參數:x、y、z — 數值表達式
例子44:
N類 next() 函數,返回迭代器下一個項目;搭配生成迭代器的 iter() 函數使用;
語法:next(iterable[, default])
參數:iterable — 可迭代對象;
default — 可選,用來設置在沒有下一個元素時返回該默認值,若不設置,又沒有下一個元素則會觸發 Stoplter ation 異常;
例子45:
O類
oct() 函數,將一個整數轉換為 八進制字符串;
Python 3.x 的八進制以 0 作為前綴表示;
語法: oct(x)
參數: x — 整數
返回 八進制字符串;
例子46:
open() 函數,打開一個文件,創建一個 file 對象,相關的方法才可調用它進行讀寫;
語法:open(name[, mode[, buffering]])
參數:name — 一個包含瞭你要訪問的文件名稱的字符串值;
mode — 決定瞭打開文件的模式:隻讀、寫入、追加等;這個參數是非強制性的,默認文件訪問模式為隻讀(r);所有可取值如下表所示;
buffering — 若 buffering 的值被設為 0 ,就不會有寄存;若 buffering 的值為 1,訪問文件時會寄存行;若將 buffering的值設為大於 1 的整數,表明這就是寄存區的緩沖大小;若取賦值,寄存區的緩沖大小則為系統默認;
Python 的不同模式的完全列表
file 對象方法:
file.read([sizet]):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() :關閉文件
例子47:
ord() 函數,和 chr() 函數(對於 8 位的 ASCII 字符串)或 unichr() 函數(對於 Unicode 對象)的配對函數,以一個字符(長度為1的字符串)作為參數,返回對應的 ASCII 數值,或 UNicode 數值,若所給的 Unicode 字符超出瞭 Python 定義范圍,會拋出 TypeError 異常;
語法:ord(x)
參數:x — 字符
返回對應的十進制整數;
例子48:
P類 pow() 函數,返回 冪運算的值(即x的y次方);
語法:1、 math模塊 pow() 方法:
import math math.pow(x,y)
2、內置的 pow() 方法
pow(x,y[,z])
若 z 存在,則再對結果進行取模,即 pow(x,y) %z
;
註意: pow() 方法通過內置的方法直接調用,內置方法會把參數作為整型,而 math 模塊則會吧參數轉換為 float;
參數:x、y、z — 數值表達式;
例子49:
print() 函數,打印輸出,常用到的一個函數;
語法:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
參數:object — 復數,表示可一次性輸出多個對象,輸出多個對象時,需用到 , 逗號分隔;
sep — 間隔多個對象,默認值是一個空格;
end — 用來設定什麼結尾,默認值是換行符 \n,可換成其他字符;
file — 要寫入的文件對象;
flush — 輸出是否被緩存通常決定於 file,但如果 flush 關鍵字參數為 True,會被強制刷新;
例子50:
property() 函數,在新式類中返回屬性值;
語法:class property([ fget [ , fset [ , fdel [ , doc]]]])
參數:fget — 獲取屬性值的函數;
fset — 設置屬性值的的函數;
fdel — 刪除屬性值函數;
doc — 屬性描述信息;
例子51:
R類
range() 函數,返回一個可迭代對象(即類型),而不是列表類型,所以打印的時候不會打印列表;
語法:range(start,stip [, step])
參數:start — 技術從start 開始,默認從 0 開始;
stip — 技術到 stop 結束,但不包括 stop(即半開區間);
step — 步長,默認為 1(與分片的步長相同);
例子52:
reduce() 函數,對參數序列中元素進行累積;
函數將一個數據集合(鏈表、元組等)中的所有數據進行:用傳給 reduce 中的函數 **function (有兩個參數)**先對集合中的第 1、 2 個元素進行操作,得到的結果再與第 3 個數據用 function 函數運算,最後得到一個結果;
註意:Python 3.x 的 reduce() 被移動到 functiools 模塊裡,若需要使用,可引入 functils 模塊來調用 reduce() 函數;from functools import reduce
語法:reduce(function,iterable[, initializer)
參數:function — 函數,有兩個參數;
iterable — 可迭代對象;
initializer — 可選,初始參數
返回函數計算結果;
例子53:
reload() 函數,重新載入之前載入的模塊;
語法:reload(module)
參數:module — 模塊對象
返回模塊對象;
例子54:
repr() 函數,將對象轉化為供解釋器讀取的形式;
語法:repr(object)
參數:object — 對象
返回一個對象的 string 格式
例子55:
reverse() 函數,作用於反向列表中元素;
語法:list.reverse()
沒有返回值,但會對列表中的元素進行反向排序;
例子56:
round() 函數,返回浮點數 x 的四舍五入的值;
語法:round(x [, n])
參數: x — 數值表達式
n — 數值表達式,表示小數點位數;
例子57:
S類
set() 函數,創建一個無序不重要的元素集,可以進行關系測試,用來刪除重復數據、計算交集、差集、並集等;
語法:class set([iterable])
參數:iterable — 可迭代對象
返回新的集合對象;
例子58:
setattr() 函數,和 getattr() 為對應函數,用來設置屬性值,該屬性不一定是存在的;
語法:setattr(object, name, value)
參數:object — 對象;
name — 字符串,對象屬性;
value — 屬性值;
例子59:
slice() 函數,對對象進行切片,主要是切片操作函數裡的參數傳遞;
語法:
class slice(stop)
class slice(start,stip [, step])
參數:start — 其實位置;
stop — 結束位置;
step — 簡距;
返回一個切片對象;
例子60:
sorted() 函數,對所有可迭代的對象進行排序;
註意:sort 與 sorted 區別:
sort 是應用在 list (列表)上的方法,sorted 可對所有的迭代的對象進行排序;
list 裡的 sort 方法返回的是對已經存在的列表進行操作,無返回值 ;而 sorted 方法返回的是一個新的 list ,不是在原來的基礎上進行操作;
語法:sorted(iterable,cmp = Nome,key = Nome,reverse = False)
參數: iterable — 可迭代對象;
cmp — 比較函數,具有兩個參數,參數的值都是從可迭代對象中取,此函數須遵守:大於則返回 1 ,小於則返回 -1,等於則返回 0;
key — 用來比較的元素,隻有一個參數,具體函數的參數取自可迭代對象中,指定可迭代對象中的要給元素來進行排序;
reverse — 排序規則,reverse = True 降序,reverse = False 升序(默認);
返回重新排序的列表;
例子61:
staticmethod() 函數,返回函數的靜態方法;
語法:staticmethod(fumction)
例子62:
str() 函數,將對象轉化為適合人閱讀的形式;
語法:class str(object = ' ')
參數:object — 對象
返回一個對象的 string 格式;
例子63:
sum() 函數,對序列進行求和計算; 返回計算結果;
語法:sum(iterable[,strart])
參數:iterable — 可迭代對象(列表、元組、集合);
start — 指定相加的參數,若沒有設置,默認為0;
例子64:
super() 函數,調用父類(超類)和解決多重繼承問題的,直接用類名調用父類方法在使用單繼承時沒有問題,若使用多繼承,會涉及查找順序(MPO)、重復調用等問題;
語法:super(type[,object-or-type)
參數:type — 類;
object-or-type — 類,一般是 self
例子65:
T類
tuple() 函數,將列表轉換為元組;加粗樣式
語法:tuple(iterable)
參數:iterable — 要轉換為元組的可迭代序列
例子66:
type() 函數,若隻有第一個參數則返回對象的類型,三個參數返回新的類型對象;
註意: isinstance() 與 type() 區別:
type() 不會認為子類是一種父類類型,不考慮繼承關;
isinstance() 會認為子類是一種父類類型,考慮繼承關系;
如果要判斷兩個類型是否相同推薦使用 isinstance();
語法:
type(object) type(name, bases, dict)
參數:name – 類的名稱;
bases – 基類的元組;
dict – 字典,類內定義的命名空間變量;
例子67:
V類 vars() 函數,返回對象 object 的屬性和屬性值的字典對象;
語法:vars([object])
參數:object — 對象
返回對象 object 的屬性和屬性值的字典對象,若沒有參數,就打印當前調用位置的屬性和屬性值,類似 locals();
例子68:
Z類
zip() 函數,將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表;
若各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表;
語法:zip([iterable,...])
參數:iterabl — 一個或多個迭代器
返回一個對象;
例子69:
__import__()
函數,用於動態加載類和函數,若一個模塊經常變化就可用 __import__()
來動態載入;
語法:__import__(name[,globals[,locals[,fromlist[,level]]]])
參數:name — 模塊名
返回元組列表;
例子70:
總結
到此這篇關於Python中內建函數的文章就介紹到這瞭,更多相關Python內建函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python高級內置函數用法實例
- Python淺析迭代器Iterator的使用
- Python編碼規范擺脫Python編碼噩夢
- python 內置函數-range()+zip()+sorted()+map()+reduce()+filter()
- Python生成器與迭代器詳情