?
? (1)常用內(nèi)置數(shù)據(jù)類型
分類 | 類型名稱 | 描述 |
---|---|---|
數(shù)字 | int | 整數(shù) |
float | 浮點數(shù) | |
complex | 復數(shù) | |
bool | 布爾值 | |
序列 | str | 字符串(不可變序列) |
list | 列表 | |
tuple | 元組(不可變序列) | |
range | 整數(shù)范圍(不可變序列) | |
bytes | 字節(jié)數(shù)組(不可變序列) | |
bytearray | 可變字節(jié)數(shù)組 | |
映射 | dict | 字典 |
集合 | set | 可變集合 |
frozenset | 不可變集合 | |
None | NoneType | 空對象,它沒有任何屬性 |
?
?
? (2)類型檢查常用方法
用法 | 類型 | 描述 | 舉例 |
---|---|---|---|
id( 實例 ) | 內(nèi)置函數(shù) | 返回一個對象的身份(整數(shù)) |
id(a) |
type( 實例 ) | 內(nèi)置函數(shù) | 返回一個對象實例的類型 | type(a) |
is | 運算符 | 比較2個對象是否同一身份 |
a is b type(a) is str type(a) is type(b)?? # a與b是否同一類型 |
isinstance( 實例, 類名 ) | 內(nèi)置函數(shù) | 入?yún)ο笫欠袷侨雲(yún)㈩惖膶嵗? |
isinstance(s, list) # s是否為列表 isinstance(f, Foo) ? # f是否為Foo類的實例 |
?
?
? (3)常用內(nèi)置函數(shù)
名稱 | 簡述 | 用法 | 舉例或說明 |
---|---|---|---|
數(shù)學運算 | |||
abs() | 返回一個數(shù)的絕對值 | abs( x ) | abs(a) |
pow() | x的y次方運算,將結(jié)果對z取模 | pow( x, y[,z] ) |
pow(2,3,3) # 結(jié)果為2 |
round() | 將x按10的負n次取四舍五入 | round( x[, n=0] ) | 舍入規(guī)則見下詳述 |
divmod() | 將a除以b的商和余數(shù)作為元組返回 | divmod( a, b ) |
divmod(10,3) # 結(jié)果為(3,1) |
內(nèi)置數(shù)據(jù)類型實例生成 | |||
int() | 根據(jù)入?yún)?shù)字或字符串,生成整數(shù)實例 | int( x[, base=10] ) | base默認為10, 詳見下例 |
float() | 根據(jù)入?yún)?shù)字或字符串,生成浮點數(shù)實例 | float( x ) |
float(3) # 結(jié)果為3.0 |
complex() | 生成復數(shù)實例 | complex( r[, i] ) | 較少用到 |
bool() | 生成布爾值實例 | bool( [x] ) | 不帶入?yún)r默認返回False |
list() | 生成列表實例 | list( [iter] ) | iter須是可迭代對象 |
dict() | 生成字典實例 | dict( [m] ) | 詳見下述 |
tuple() | 生成元組實例 | tuple( [iter] ) | iter須是可迭代對象 |
str() | 生成字符串實例 | str( [object] ) | 入?yún)bject的__str__方法 |
range() | 創(chuàng)建range實例 |
range( stop ) range( start, stop [,step] ) |
range對象可以用迭代、也可用切片訪問 |
set() | 生成集合實例 | set( [iter] ) | iter須是可迭代對象 |
frozenset() | 生成不可變集合實例 | frozenset( [iter] ) | iter須是可迭代對象 |
slice() | 生成切片對象 |
slice( stop ) slice( start, stop [,step] ) |
較少直接使用 |
bytes() | 生成不可變字節(jié)數(shù)組實例 | bytes( [source [,encoding [,errors]]] ) | 詳見下述 |
bytearray() | 生成可變字節(jié)數(shù)組實例 | bytearray( [source [,encoding [,errors]]] ) | 用法同上,內(nèi)容可變 |
memoryview() | 生成memoryview實例 | memoryview( obj ) | 較少用到 |
object() | 生成一個基類實例 | object() | 較少用到 |
編碼與解碼 | |||
hex() | 將數(shù)值x用16進制字符串表示 | hex( x ) |
hex(16) # 結(jié)果為'0x10' |
oct() | 將數(shù)值x用8進制字符串表示 | oct( x ) |
oct(16) # 結(jié)果為'0o20' |
bin() | 將數(shù)值x用2進制字符串表示 | bin( x ) |
bin(8) # 結(jié)果為'0b1000' |
ord() | 將單字符轉(zhuǎn)換成utf-8數(shù)值 | ord( c ) |
ord('a') # 結(jié)果為97 ord('數(shù)') # 結(jié)果為25968 |
chr() | 將數(shù)值x轉(zhuǎn)換成單字符字符串 | chr( x ) |
chr(97) # 結(jié)果為'a' chr(25968) # 結(jié)果為'數(shù)' |
ascii() | 像repr()那樣顯示對象,非ASCII字符顯示為轉(zhuǎn)義序列 | ascii( object ) | 較少用到 |
序列操作 | |||
len() | 返回s中包含的項數(shù) | len( s ) | s可以是:列表、元組、字符串、集合、字典 |
min() | 如果只有1個參數(shù)s,返回s中各項的最小值。如果有多個參數(shù),返回各個參數(shù)中的最小值。 | min( s[, args, ...] ) |
s可以是可迭代對象 min([1,3,5]) # 結(jié)果為1 min(1,3,5,7) # 結(jié)果為1 |
max() | 如果只有1個參數(shù)s,返回s中各項的最大值。如果有多個參數(shù),返回各個參數(shù)中的最大值。 | max( s[, args, ...] ) |
s可以是可迭代對象 min([1,3,5]) # 結(jié)果為5 min(1,3,5,7) # 結(jié)果為7 |
sum() | 計算可迭代對象iter中所有項的和,initial為累加初始值,默認為0。只能用于數(shù)值計算。 | sum( iter[ ,initial] ) |
sum([1,2,3]) # 結(jié)果為6 sum([1,2,3], 10) # 結(jié)果為16 |
迭代操作 | |||
all() | 若可迭代對象iterable中的所有值都為True,則返回True。 | all( iter ) |
all([0,1,2,3]) # 結(jié)果為False |
any() | 若可迭代對象iterable中的任意值為True,則返回True。 | any( iter ) |
any([0,1,2,3]) # 結(jié)果為True |
enumerate() | 根據(jù)入?yún)⒌鳎a(chǎn)生一個新迭代器,其中每個元素為一個元組:內(nèi)含一個計數(shù)值和原迭代出的值。 | enumerate( iter[ ,start=0] ) |
for i,x in enumerate(['a','b']) ????pass ???? # 結(jié)果迭代出(0,'a'), (1,'b') |
zip() | 產(chǎn)生一個新迭代器,第n個元素為一個(s1[n], s2[n], ...)的元組,其長度為最短的一個迭代器長度。 | zip( [s1 [, s2 [, ...]]] ) |
a = [1,2,3] b = ['x','y'] for t in zip(a, b) ????pass ???? # 迭代結(jié)果為(1,'x'), (2,'y') |
sorted() | 根據(jù)入?yún)⒌鞯膬?nèi)容排序,創(chuàng)建有序列表 | sorted( iter, *, key=None, reverse=False ) | 詳見下述 |
reversed() | 產(chǎn)生一個迭代器,將入?yún)⑿蛄械乃性匚恢妙嵉梗ㄗ⒁猓焊鷖orted()完全不同) | reversed( seq ) |
for x in reversed([1,2,'a']): ????pass ???? # 迭代結(jié)果為 'a', 2, 1 |
filter() | 產(chǎn)生一個迭代器,其內(nèi)容是對入?yún)ter中的每個元素使用func函數(shù)進行過濾,只有func返回True的才被加入新迭代器。 | filter( func, iter ) |
a = [1,2,3,4,5,6,7,8] filter(lambda x:x%2==1, a) # 迭代器中內(nèi)容為 1,3,5,7 |
map() | 產(chǎn)生一個迭代器,其每一項是將函數(shù)func應用到iter中的每一項返回的結(jié)果。若入?yún)⒂卸鄠€iter迭代器,則相應的函數(shù)func應有多個入?yún)ⅰ? | map( func, iter, ... ) |
map(lambda x:x*2, [1,3,5,7]) # 迭代器中內(nèi)容為 2,6,10,14 |
iter() | 返回一個可生成object中各項的迭代器。 | iter( object[ ,sentinel] ) |
較少直接使用 |
next() | 返回迭代器iter中的下一項。 | next( iter[ ,default] ) |
較少直接使用 |
對象實例操作 | |||
id() | 返回object的唯一整數(shù)標識符(這是一個內(nèi)存位置)。 | id( object ) |
結(jié)果為一個整數(shù),較少直接使用 |
type() | 當單參數(shù)調(diào)用時,返回入?yún)bject的類型。當三參數(shù)調(diào)用時,創(chuàng)建一個新type對象(一般用于元類)。 |
type( object ) type( name, bases, dict ) |
type(1)
# 結(jié)果為
type('a')
# 結(jié)果為
|
isinstance() | 如果object是clsinfo類的一個實例,則返回True。clsinfo可以是一個含多個類的元組。 | isinstance( object, clsinfo ) |
# 設有一個名為Foo的自定義類 f = Foo() isinstance(f, Foo) # True isinstance(f, (Foo,list)) # True isinstance([1,2], (Foo,list)) # True isinstance(f, (list,tuple) # False |
repr() | 返回object的字符串表示形式。 | repr( object ) | 一般在類內(nèi)部的__repr__()方法會定義本對象的字符串表示形式。 |
dir() | 返回object對象的屬性名(含方法名)列表,若object是一個模塊,則返回其內(nèi)部定義的符號列表。 | dir( object ) | 如果類內(nèi)部定義了__dir__屬性,則返回此值。 |
hasattr() | 若name是object的屬性名,則返回True | hasattr( object, name ) |
入?yún)ame是一個字符串 |
getattr() | 返回對象的name屬性的值,若無此屬性,則default是可選的返回值,否則引起AttributeError。 | getattr( object, name [,default] ) |
a = getattr(obj, 'p1') # 效果同 a = obj.p1 |
setattr() | 設置對象的屬性 | setattr( object, name, value ) |
setattr(obj, 'p1', a) # 效果同 obj.p1 = a |
delattr() | 刪除對象的屬性 | delattr( object, name ) |
delattr(obj, 'p1') # 效果同 del obj.p1 |
hash() | 返回對象的整數(shù)散列值。一般可變對象不會定義散列值,除非類內(nèi)部定義了__hash__()方法。 | hash() |
hash('abc') # 結(jié)果為526986374 hash(3.14) ?# 結(jié)果為1846836513 |
callable() | 檢查一個對象是否是可調(diào)用的。但有時即便返回 True,object 仍然可能調(diào)用失敗。 | callable( object ) | 對于函數(shù)、方法、lamdba表達式、類、實現(xiàn)了__call__()方法的類實例,它都返回True。 |
類操作 | |||
staticmethod() | 創(chuàng)建在類中使用的靜態(tài)方法。 | staticmethod( func ) | 一般通過@staticmethod裝飾器隱式調(diào)用該函數(shù) |
classmethod() | 創(chuàng)建在類方法。 | classmethod( func ) | 一般通過@classmethod裝飾器隱式調(diào)用該函數(shù) |
issubclass() | 如果class是clsinfo的子類,或class是基于抽象基類clsinfo注冊的,則返回True。clsinfo可以是一個含多個類的元組。 | issubclass( class, clsinfo ) |
issubclass(Foo, BaseFoo) # 結(jié)果為 True issubclass(Foo, (BaseFoo,list) # 結(jié)果為 True |
super() |
返回一個代理對象,提供可以調(diào)用基類中的方法的手段。type是當前子類名,object一般是self。 在Python3中,在子類方法中可以省略type和object參數(shù),直接簡寫成:super() |
super( type [,object] ) |
class B(A): ??def foo(self): ???? # 調(diào)用基類A的foo方法 ????super(B,self).foo() ???? # 在Python3中可簡寫成: ???? # super().foo() |
property() | 創(chuàng)建一個虛擬屬性。fget, fset, fdel分別為自定義的屬性讀取、設置、刪除方法,doc為文檔字符串。 | property( fget=None, fset=None, fdel=None, doc=None ) |
class C: ??def __init__(self): ????self._x = 'c' ??def gx(self): ????return self._x ??x=property(fget=gx, doc='a') ??# 定義了一個只讀的屬性x |
域操作 | |||
globals() | 返回代表當前全局作用域的所有符號的字典。 | globals() |
globals() |
locals() | 返回代表當前局部作用域的所有符號的字典。 | locals() |
locals() |
var() | 返回object的所有屬性和屬性值的字典對象,如果沒有入?yún)ⅲ瑒t相當于調(diào)用locals() | var( [object] ) |
vars(obj) |
輸入輸出與文件操作 | |||
input() | 顯示prompt提示信息,并讀取一行輸入,將讀入內(nèi)容不作任何修改作為字符串返回。(Python3中取消了原raw_input()函數(shù)) | input( [prompt] ) |
>>> input('pls ipt:') pls ipt: 123 # 返回結(jié)果為:'123' |
print() | 打印一系列值到屏幕上。入?yún)⒅锌稍O置:多個顯示對象之間的分隔符、換行符、輸出設備、強制刷新等,一般不用修改。 | print( *objects, sep=' ', end='\n', file=sys.stdout, flush=False ) |
一般用于調(diào)試用 |
open() | 打開文件并返回一個新文件對象。 | open( file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None ) |
在文件操作章節(jié)詳細描述 |
雜項 | |||
eval() | 計算入?yún)⒈磉_式expr的值,expr是一個字符串或代碼對象。globals和locals參數(shù)可指定操作時的全局和局部命名空間映射對象。 | eval( expr, globals=None, locals=None ) |
x = 1 eval('x+1') # 結(jié)果為2 |
exec() | 執(zhí)行Python語句,入?yún)ode可以是字符串、文件或代碼對象。globals和locals參數(shù)可指定操作時的全局和局部命名空間映射對象。 | exec( code[, globals[, locals]] ) |
x = 1 code = """s = x + 1 print(s)""" exec(code) # 結(jié)果為2 exec(code, {'x':10}) # 結(jié)果為11 |
format() | 按照format_spec中的格式將value轉(zhuǎn)換為有格式的字符串,該操作調(diào)用value.__format__()方法。 | format( value[, format_spec] ) |
一般在格式化字符串時被隱式調(diào)用 |
help() | 調(diào)用內(nèi)置的幫助系統(tǒng)。object可以是字符串(表示模塊名、類名、函數(shù)名、方法名、關鍵字、文檔主題名稱),如果是其他類型的對象,則會出現(xiàn)與該對象有關的幫助界面。 | help( [object] ) |
help('math') |
compile() | 將source對象編譯為代碼對象,結(jié)果可被用于eval()和exec()函數(shù)。 | compile( source, filename, mode, flags=0, dont_inherit=False, optimize=-1 ) |
若不是開發(fā)框架的話,一般用不到 |
breakpoint() | Python3.7中新增的內(nèi)置函數(shù),用來設置程序運行時的斷點,程序運行到該函數(shù)時自動進入調(diào)試器。這是個方便函數(shù),可以讓你很方便地進入Pdb調(diào)試器(不用再顯式導入調(diào)試模塊等)。 | breakpoint( *args, **kws ) | 在需要設置斷點的地方直接調(diào)用breakpoint()即可 |
?
?
?
● round(x[, n])
說明:
在Python3中,當被舍入數(shù)字為5且為第1位小數(shù)時,舍入規(guī)則如下:若被舍入數(shù)字的前一個數(shù)為偶數(shù),則朝0方向進行四舍五入;否則遠離0,正負數(shù)都遵循這個規(guī)則。其它位的四舍五入不適用此規(guī)則,依舊按照普通數(shù)學規(guī)則進行。
舉例:
>>> round(2.5) ?# 結(jié)果為2 >>> round(-2.5) # 結(jié)果為2 >>> round(3.5) ?# 結(jié)果為4 >>> round(-3.5) # 結(jié)果為4
返回索引
?
?
?
● int(x[, base])
說明:
x可以是數(shù)字或字符串,base是入?yún)⒌霓D(zhuǎn)換進制基數(shù),可以是2、8、16、16等,轉(zhuǎn)換結(jié)果總是10進制整數(shù)。
舉例:
>>> int('100') ?# 結(jié)果為100 >>> int('100', 10) ?# 結(jié)果為100 >>> int('100', 16) ?# 結(jié)果為256 >>> int('100', 2) ?# 結(jié)果為4
返回索引
?
?
?
● dict([m])
說明:
入?yún)若是字典,則dict(m)就創(chuàng)建一個m淺復制。若m不是字典,則必須能夠產(chǎn)生(key, value)形式的迭代值。也可用關鍵字創(chuàng)建字典,見下例。
舉例:
>>> dict('a'=1, 'b'=2) ?# 結(jié)果為{'a':1, 'b':2} >>> dict() ?# 結(jié)果為空字典{}
返回索引
?
?
?
● bytes([source [,encoding [,errors]]])
說明:
生成不變字節(jié)數(shù)組,入?yún)ource為原始輸入字符串,入?yún)ncoding指定要使用的字符編碼方式。
舉例:
>>> x = bytes() ?# 結(jié)果為空字節(jié)數(shù)組 b'' >>> x = b'' ?# 結(jié)果同上 >>> x = bytes('abc') ?# 結(jié)果為 b'abc' >>> x = bytes('ab數(shù)字', 'utf-8') ?# 結(jié)果為 b'ab\xe6\x95\xb0\xe5\xad\x97'
返回索引
?
?
?
● sorted(iter, *, key=None, reverse=False)
說明:
根據(jù)iter迭代器中的各項值的內(nèi)容進行排序(從小到大),創(chuàng)建有序列表,一般只能對數(shù)字或字符串進行排序。key是個單參數(shù)函數(shù),可以對元素在被排序前進行預處理,將一些常規(guī)來說不能排序的元素預處理成可排序的數(shù)字或字符串。reverse是個標志位,用以指出是否逆序(從大到小)排序。(注意:Python3最新版本中已廢除了cmp參數(shù))
舉例:
>>> sorted([1,7,3,5]) ?# 結(jié)果為[1,3,5,7] >>> sorted([1,7,3,5], reverse=True) ?# 結(jié)果為[7,5,3,1] >>> sorted(['c','b','a']) ?# 結(jié)果為['a','b','c'] >>> sorted([('b',2),('a',1)], key=lambda x:x[1]) ?# 結(jié)果為[('a',1),('b',2)] >>> # 上例說明:入?yún)⒘斜碇械脑貫樵M,一般不能排序。但這里用lambda生成了一個匿名函數(shù),對元素進行預處理,取出每個元素元組中的數(shù)字,然后用這個數(shù)字作為排序依據(jù),給sorted()函數(shù)進行排序
返回索引
?
?
?
?
?
?
返回標題
?
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
