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 – 文件名。
globals – 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。
locals – 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。
返回表達式執行結果。
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 – 函數,有兩個參數
iterable – 可疊代對象
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 – 對象
返回對象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)
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)
object – 對象
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)
object – 對象
name – 必須是對象的屬性
help() :查看函數或模塊用途的詳細說明
描述:help() 函數用於查看函數或模塊用途的詳細說明
語法:help([object])
object – 對象
返回對象幫助信息
next():用於疊代器的返回數值
描述:返回疊代器的下一個項目
語法:next(iterator[, default])
iterator – 可疊代對象
default – 可選,用於設置在沒有下一個元素時返回該默認值,如果不設置,又沒有下一個元素則會觸發 StopIteration 異常
setattr() :設置屬性值
描述:setattr() 函數對應函數 getattr(),用於設置屬性值,該屬性不一定是存在的
語法:setattr(object, name, value)
object – 對象
name – 字符串,對象屬性
value – 屬性值
dict() :創建字典
描述:dict() 函數用於創建一個字典
語法:
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
參數
**kwargs – 關鍵字
mapping – 元素的容器
iterable – 可疊代對象
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])
object – 對象
返回對象的內存地址
oct() :將整數轉換成8進位字符串
描述:oct() 函數將一個整數轉換成8進位字符串
語法:oct(x)
sorted() :排序
描述:sorted() 函數對所有可疊代的對象進行排序操作
語法:sorted(iterable[, cmp[, key[, reverse]]])
iterable – 可疊代對象
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