前言
python實(shí)現(xiàn)一些功能特別方便,一般用于快速生成程序的原型,后期可以使用更加適合的語(yǔ)言編寫。跟緊時(shí)代的腳步,不斷學(xué)習(xí),以下是看官方文檔中的內(nèi)置函數(shù)介紹的學(xué)習(xí)記錄。雖然不是很詳細(xì),先記住有哪些函數(shù),等真正需要的可以再詳細(xì)查詢。
本想把一些常用的函數(shù)放到前面來,后來仔細(xì)一想,如果您是來查找使用方法,可以直接CTRL+F直接定位函數(shù);學(xué)習(xí)的話還是全部了解下python內(nèi)置的函數(shù)好些,這樣更有提高!
python內(nèi)置函數(shù)
abs(x): 返回x的絕對(duì)值。
**all(iterable) **: 如果iterable中的所有元素都是真(非空、非零)則返回true,否則返回false; 注意:如果iterable為空則返回True。
any(object):如果iterable中的所有元素都是真(非空、非零)則返回true,否則返回false, 注意:如果iterable為空則返回False。
all()和any()的比較可以從其函數(shù)定義中看出 :

ascii(object): 類似2.0版本的repr()函數(shù),返回一個(gè)可打印的字符串對(duì)象,當(dāng)遇到非ASCII碼時(shí),就會(huì)輸出\x,\u或\U等字符串表示。
class bool([x]):返回一個(gè)bool值, bool類是int類的子類,使用了[] ,表示參數(shù)可以缺省,缺省則返回false。
**class bytearray([source[, encoding[, errors]]]) **: 返回一個(gè)新的bytes對(duì)象,該對(duì)象是一個(gè)可變的序列整數(shù),其取值范圍在0<= x < 256 。不同的source對(duì)應(yīng)不同的操作
● 如果source是一個(gè)string,則必須提供encoding參數(shù),bytearray()則將使用str.encode()將string轉(zhuǎn)為byte。
● 如果這是一個(gè)整數(shù),則會(huì)生成一個(gè)相同大小且初始化為null bytes的數(shù)組。
● 如果是一個(gè)符合緩沖區(qū)接口的對(duì)象,一個(gè)只讀的buffer將會(huì)用戶初始化bytes數(shù)組
● 如果是一個(gè)可迭代類型,且必須是在0<= x < 256的整數(shù)才能用于初始化該對(duì)象。
class bytes([source[, encoding[, errors]]]):返回一個(gè)新的 bytes 對(duì)象,該對(duì)象是一個(gè)不可變的序列整數(shù),其取值范圍在0<= x < 256 。bytes是bytearray的不可變版本,它們有相同的不可變方法、相同下標(biāo)和切片行為。
callable(object) :如果object是可調(diào)用(擁有__call()__函數(shù))的則返回True,否則返回False。返回True該對(duì)象仍然可能調(diào)用失敗,如果返回False則一定調(diào)用失敗。 注:callable(object)在3.0版本被移除,但3.2版本增加回來了。
**chr(i) **:返回Unicode字符串,通常0 <= i <= 0x10ffff 。
classmethod(function) :一個(gè)將類作為隱式的第一個(gè)參數(shù)的類方法,就像一個(gè)可以接受實(shí)例的實(shí)例方法。
class C:
@classmethod
def f(cls, arg1, arg2, ...):
有了@classmethod可以直接使用C.f()、C().f()調(diào)用,否則只能使用C().f()調(diào)用。 注:C()相當(dāng)于生成一個(gè)C的實(shí)例,直接使用C.f()沒有生成實(shí)例,且和C++、java中的靜態(tài)方法(對(duì)應(yīng)在python中的是@staticmethod)有區(qū)別:@ckassmethod可以傳入子類,而@staticmethod沒有傳入當(dāng)前類,所有不能用于子類的調(diào)用。

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1): 將sorce編譯成為一個(gè)代碼或AST(Abstract Syntax Trees)對(duì)象。生成的代碼對(duì)象可以被exec()或eval()函數(shù)執(zhí)行,
● source:--字符串、byte string、或一個(gè)AST對(duì)象。
● filename: 讀取code的文件,如果沒有為空則不讀取。
● mode:指定編譯的模式。exec:如一個(gè)序列語(yǔ)句;eval:一個(gè)單獨(dú)的表達(dá)式;single:?jiǎn)我唤换フZ(yǔ)句。
● flags、dont_inherit:控制一些影響編譯源碼的標(biāo)志。
● optimize:指定編譯器優(yōu)化級(jí)別。
class complex([real[, imag]]):返回一個(gè)值為real+image*j的復(fù)數(shù)或?qū)⒁粋€(gè)string或number轉(zhuǎn)換為一個(gè)復(fù)數(shù)。
delattr(object, name):與setattr()函數(shù)相反,刪除類的屬性。
dir([object]):如果沒有參數(shù),返回當(dāng)前局部范圍內(nèi)的所有名字(變量、方法、定義的類型列表);如果帶參數(shù),返回該對(duì)象有效屬性的列表。
divmod(a, b):傳入兩個(gè)非復(fù)數(shù)的數(shù)字,返回一個(gè)整除的結(jié)果和一個(gè)求余的結(jié)果。
enumerate(iterable, start=0):返回一個(gè)枚舉對(duì)象,iterable必須是一個(gè)支持迭代的對(duì)象,用于生成數(shù)據(jù)和數(shù)據(jù)生成的下標(biāo)??垂倬W(wǎng)解釋即可理解:


eval(expression, globals=None, locals=None):用于執(zhí)行一個(gè)字符串表達(dá)式。expression是字符串,globals必須是一個(gè)字典,locals必須是一個(gè)map對(duì)象。globals和local表示全局和局部命名空間。如果globals是字典且缺少__builtins__,則globals將會(huì)在表達(dá)式解析前拷貝到全局變量中。
exec(object[, globals[, locals]]): 支持動(dòng)態(tài)執(zhí)行python代碼,object必須是字符串或一個(gè)代碼對(duì)象。如果object是一個(gè)字符串,則字符串會(huì)被解析為一組Python語(yǔ)句,不管是否在傳遞給exec()函數(shù)的上下文中,return和yield語(yǔ)句可能不會(huì)被作用函數(shù)的外部。globals、locals和eval中的類似。
filter(function, iterable):用于過濾可迭代的序列,只返回當(dāng)function為真的刷選后的序列。
class float([x]):返回一個(gè)float數(shù)字,X可以使一個(gè)受罪或字符串,字符串中可以有正負(fù)號(hào)、換行符、科學(xué)計(jì)數(shù)法、Infinity。
format(value[, format_spec]):用于將值格式化。
class frozenset([iterable]):返回一個(gè)凍結(jié)的對(duì)象,凍結(jié)對(duì)象的元素是從可迭代中獲取的,凍結(jié)對(duì)象不能再添加或刪除任何元素。
globals():返回一個(gè)代表中當(dāng)前全局符號(hào)表的字典。
hasattr(object, name): 測(cè)試該object是否有name屬性,有返回true,否則返回false。
hash(object):返回一個(gè)該object的整數(shù)哈希值。
help([object]):python的幫助函數(shù)。
hex(x):將整數(shù)值x轉(zhuǎn)換為小寫的十六進(jìn)制代碼。
id(object):返回在生命周期中標(biāo)識(shí)該object整數(shù)值,盡管兩個(gè)對(duì)象可能會(huì)有相同的id值。
input([prompt]):獲取輸入;

class int(x, base=10):返回int值,x可以是整數(shù)或字符串,base標(biāo)識(shí)進(jìn)制:2,8,10,16。
isinstance(object, classinfo):判斷object是否是classinfo類型,object可以是classinfo的子類也會(huì)返回true。
issubclass(class, classinfo):判斷class是否是classinfo的子類。
len(s):返回s的長(zhǎng)度。
class list([iterable]):將iterable轉(zhuǎn)換為可變的list。
locals():更新和返回當(dāng)前局部變量表的字典值。
map(function, iterable, ...)將iterable中的每個(gè)元素都使用function來進(jìn)行操作。其實(shí)就是mapreduce中的map操作。
*max(iterable, [, key, default])
*max(arg1, arg2, args[, key]):返回參數(shù)中的最大值。
memoryview(obj):返回由obj創(chuàng)建的內(nèi)存視圖對(duì)象。
next(iterator[, default]):返回可迭代對(duì)象的下一個(gè)項(xiàng)目,同時(shí)調(diào)用next()方法實(shí)現(xiàn)。
class object:返回一個(gè)沒有特征的新對(duì)象。
oct(x):將一個(gè)整數(shù)轉(zhuǎn)換為8進(jìn)制字符串。
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None):打開文件并返回一個(gè)文件對(duì)象。
● file:相對(duì)路徑或絕對(duì)路徑的文件名。
● mode:打開文件的模式,可以是多個(gè)方式結(jié)合如:'w+b'等。

● buffering:: 如果 buffering 的值被設(shè)為 0,就不會(huì)有寄存。如果 buffering 的值取 1,訪問文件時(shí)會(huì)寄存行。如果將 buffering 的值設(shè)為大于 1 的整數(shù),表明了這就是的寄存區(qū)的緩沖大小。如果取負(fù)值,寄存區(qū)的緩沖大小則為系統(tǒng)默認(rèn)。
● encodeing:用戶對(duì)文件的讀寫的編碼格式。
● errors :用戶出來再編解碼時(shí)出現(xiàn)錯(cuò)誤是的處理方式,errors的取值有:
| errors取值 | 含義 |
|---|---|
| 'strict' | 如果存在編碼錯(cuò)誤,則引發(fā)ValueError異常。默認(rèn)值“無”具有相同的效果 |
| 'ignore' | 忽略錯(cuò)誤,可能會(huì)導(dǎo)致數(shù)據(jù)丟失。 |
| 'replace' | 使用替換筆記插入到格式不正確的數(shù)據(jù)中。 |
| 'surrogateescape' | 將任何錯(cuò)誤的字節(jié)使用Unicode私有使用區(qū)域中的代碼點(diǎn)進(jìn)行替換,范圍是U + DC80到U + DCFF。當(dāng)編寫數(shù)據(jù)時(shí)使用代理錯(cuò)誤程序時(shí),這些私有代碼點(diǎn)將被轉(zhuǎn)回相同的字節(jié),這對(duì)處理未知編碼的文件非常有用。 |
| 'xmlcharrefreplace' | 僅僅用于寫入文件,編碼不支持的字符將被替換成相應(yīng)的xml字符。 |
| 'backslashreplace' | 通過Python的反斜杠轉(zhuǎn)義序列替換格式不正確的數(shù)據(jù)。 |
| 'namereplace' | (僅在寫入時(shí)支持)用\ N {...}轉(zhuǎn)義序列替換不受支持的字符。 |
| 'replace' | 使用替換筆記插入到格式不正確的數(shù)據(jù)中。 |
● closefd:如果closed為False并且提供了文件描述符而不是文件名,那么當(dāng)文件被關(guān)閉時(shí)文件描述符將保持打開狀態(tài)。如果給定文件名,則closed必須為True(默認(rèn)值),否則將會(huì)引發(fā)錯(cuò)誤。
● opener:通過傳遞一個(gè)可打開的opener來定義的opener。然后通過使用(file,flags)調(diào)用opener獲取文件對(duì)象的底層文件描述符。opener必須返回一個(gè)打開的文件描述符(通過os.open作為opener結(jié)果的功能類似于傳遞無)。
ord(c):給定一個(gè)字符串,返回其ascii碼代表的數(shù)字。和chr()函數(shù)相反。
pow(x, y[, z]):返回x的y次冪,如果給定z,則返回pow(x,y) % z ,pow(x,y)相當(dāng)于冪操作符: x**y。
print(objects, sep=' ', end='\n', file=sys.stdout, flush=False)*:打印對(duì)象到文本流文件中,使用sep來分割,使用end來作為結(jié)尾。
class property(fget=None, fset=None, fdel=None, doc=None):可以使類更簡(jiǎn)單第對(duì)屬性進(jìn)行操作。將某個(gè)屬性設(shè)置為property函數(shù)的返回值后,可以使用該屬性調(diào)用設(shè)置的函數(shù)。看圖大家就知道怎么用了:

如果沒有設(shè)置property函數(shù)則不能直接對(duì)屬性進(jìn)行操作:

range(stop)
range(start, stop[, step]):生成一個(gè)不可變的序列類型---list、tuple、range。 可用于生成list、tuple。 list(range(stop)、tupe(range(stop))。
repr(object):返回一個(gè)可打印表示的字符串。通常用于返回一個(gè)字符串使其能傳遞給eval()函數(shù)。
reversed(seq):返回一個(gè)反向迭代器。seq必須是一個(gè)擁有__reversed__()方法或支持序列協(xié)議(__len()__方法和擁有從0開始的__getitem__()方法)
round(number[, ndigits]):返回浮點(diǎn)數(shù)number四舍五入的值,其中ndigit
class set([iterable]):返回一個(gè)新的set對(duì)象,該對(duì)象的值是從iterable中選取的。
setattr(object, name, value):是getattr()函數(shù)的對(duì)應(yīng),為object設(shè)置屬性name的值為value,其中name可以是已經(jīng)存在的或一個(gè)新的值。例如:setattr(x, 'foobar', 123) 相當(dāng)于 x.foobar = 123.
class slice(stop)
class slice(start, stop[, step]):返回一個(gè)切片對(duì)象,該切片對(duì)象可用于range、list、tuple。

sorted(iterable[, key][, reverse]):對(duì)iterable進(jìn)行排序,key是一個(gè)參數(shù)函數(shù)或lambda表達(dá)式從每個(gè)元素中提取出來的用于比較的值例如:key=lambda e: e[2],使用第三個(gè)元素進(jìn)行排序,reverse=True表示反序。
staticmethod(function):返回一個(gè)靜態(tài)方法,靜態(tài)方法和C++、java中的靜態(tài)方法類似??梢灾苯邮褂肅.f(),普通方法只能通過C().f()來調(diào)用。
class str(object='')
class str(object=b'', encoding='utf-8', errors='strict'):返回對(duì)象object的字符串版本。
sum(iterable[, start]):從start開始從左到右依次累加,返回累加的結(jié)果。start默認(rèn)值是0.
super([type[, object-or-type]]):在python中引入super()的目的是保證相同的基類只初始化一次,尤其在多重繼承的時(shí)候,可以確保公共父類只執(zhí)行依次。使用super(Class,self)實(shí)際上是調(diào)用了super類的初始化函數(shù),產(chǎn)生一個(gè)super對(duì)象。super(Class, self).func的調(diào)用并不是用于調(diào)用當(dāng)前類的父類的func函數(shù);
tuple([iterable]):返回一個(gè)不可變的tuple對(duì)象,起元素值從iterable中選取。類似 list()。
class type(object):返回object的類型,相當(dāng)于調(diào)用object.__class__。 當(dāng)測(cè)試一個(gè)對(duì)象的類型時(shí),推薦使用isinstance(),因?yàn)椋?code>isinstance()包含了檢測(cè)子類。
class type(name, bases, dict):返回一個(gè)動(dòng)態(tài)類型對(duì)象。name是類名,且成為了__name__屬性的值,bases列命了其父類,且成為了__bases__屬性的值,dict字典是類的命名空間且拷貝到了__dict__屬性。 相當(dāng)遠(yuǎn)創(chuàng)建了動(dòng)態(tài)對(duì)象。

vars([object]):返回object的__dict__屬性。
zip(iterables)*:做一個(gè)迭代器來聚合每個(gè)迭代的元素。

import(name, globals=None, locals=None, fromlist=(), level=0):用于從配置文件中動(dòng)態(tài)第加載模塊,且一般配置項(xiàng)通常為字符串類型,使用
__import__加載能完成該任務(wù)。 __import__ 可以適用于延遲化模塊的導(dǎo)入,先加載必須的一些函數(shù),等程序動(dòng)態(tài)運(yùn)行到某個(gè)模塊時(shí)再動(dòng)態(tài)加載函數(shù),提高用戶體驗(yàn)。● name (required): 被加載 module 的名稱
● globals (optional): 包含全局變量的字典,該選項(xiàng)很少使用,采用默認(rèn)值 global()
● locals (optional): 包含局部變量的字典,內(nèi)部標(biāo)準(zhǔn)實(shí)現(xiàn)未用到該變量,采用默認(rèn)值 local()
● fromlist (Optional): 被導(dǎo)入的 submodule 名稱
● level (Optional): 導(dǎo)入路徑選項(xiàng),默認(rèn)為 -1,表示同時(shí)支持 absolute import 和 relative import
事實(shí)上,import 本質(zhì)上是調(diào)用
__import__ 加載 module 的,比如:
總結(jié)
以上函數(shù)是python的內(nèi)置函數(shù),九風(fēng)是根據(jù)python的官方文檔學(xué)習(xí)后簡(jiǎn)單記錄的,寫的不詳細(xì)或有誤的地方懇請(qǐng)大家指出。
本文旨在熟悉有那些內(nèi)置函數(shù),具體使用時(shí)候如果還不了解有那些細(xì)節(jié),可以使用內(nèi)置函數(shù)help([object])或查閱官方文檔來查看詳細(xì)使用方式或者查看官方文檔。