Python基礎(chǔ)之內(nèi)置函數(shù)(五)

一线脚、介紹

Python解釋器運行時會自動加載builtins模塊泻轰,而我們常用的內(nèi)置函數(shù)都是在此模塊中残黑;

- 通過globals()查看當(dāng)前自帶模塊
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}
- 通過dir()查看builtins模塊內(nèi)置的函數(shù),通過len()計算有153個內(nèi)置屬性条舔,其中大約80多內(nèi)置函數(shù),60多個內(nèi)置異常乏矾,還有幾個內(nèi)置常數(shù)逞刷,特殊名稱以及模塊相關(guān)的屬性;
len(dir(__builtins__))
  • 內(nèi)置函數(shù)
abs() dict() help() min() setattr()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() _import_()
complex() hasattr() max() round()
delattr() hash() memoryview() set()
  1. abs()絕對值函數(shù)
>>> abs(-100)
100
  1. dict() 創(chuàng)建字典
>>> dict(abc='123')
{'abc': '123'}
>>> dict()
{}
  1. help()幫助函數(shù)妻熊,查看函數(shù)或者模塊的使用方法
>>> help()
help> keywords
  1. min()函數(shù)夸浅,返回最小值
>>> min(1, 2, 3)
1
  1. setattr()函數(shù),跟類有關(guān)扔役,后續(xù)補充
  2. all()函數(shù)帆喇,判斷元組或列表內(nèi)元素是否為True,如果有一個不為True那么結(jié)果為False
>>> a = [1, 2, 3]
>>> all(a)
True
>>> b = [0, 1, 2]
>>> all(b)
False
  1. dir()函數(shù)不帶參數(shù)時亿胸,返回當(dāng)前范圍內(nèi)的變量坯钦、方法和定義的類型列表;帶參數(shù)時侈玄,返回參數(shù)的屬性婉刀、方法列表
dir()
['A', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b']
>>> dir(a)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
  1. hex()函數(shù),將十進制轉(zhuǎn)換為十六進制
>>> hex(10)
'0xa'
  1. next()函數(shù)序仙,返回迭代器中下一個元素值
>>> number = '178582258'
>>> it = iter(number)
>>> next(it)
'1'
>>> next(it)
'7'
  1. slice()突颊, 返回切片類型的對象
>>> myslice = slice(5)
>>> myslice
slice(None, 5, None)
>>> arr = range(10)
>>> arr[myslice]
range(0, 5)
  1. any(),與all()相反,判斷元組或列表內(nèi)元素是否為False律秃,如果有一個不為False那么結(jié)果為True
>>> any([0, 0, 0])
False
>>> any([0, 1, 2])
True
  1. divmod()爬橡,計算兩個值相除,返回商和余數(shù)
>>> divmod(3, 1)
(3, 0)
>>> divmod(3, 2)
(1, 1)
  1. id()棒动,獲取對象的內(nèi)存地址
>>> id(3)
1876484912
  1. object()糙申,該方法不接收任何參數(shù),返回一個沒有任何功能的對象船惨。object是Python所有類的基類柜裸。
  2. sorted(),排序函數(shù)
>>> sorted([88, 2, 44, 51, 2231, 5, 111, 41])
[2, 5, 41, 44, 51, 88, 111, 2231]
>>> sorted((88, 2, 44, 51, 2231, 5, 111, 41))
[2, 5, 41, 44, 51, 88, 111, 2231]
  1. ascii()粱锐,打印函數(shù)疙挺,類似于print()方法
>>> ascii('abc')
"'abc'"
>>> ascii(2)
'2'
  1. enumerate(), 枚舉函數(shù)卜范,可用for循環(huán)打印出列表元素以及對應(yīng)的下標(biāo)
>>> a = ['lain', 'tom', 'lili', 'sunne']
>>> for i in enumerate(a):
     print(i)
(0, 'lain')
(1, 'tom')
(2, 'lili')
(3, 'sunne')
  1. input()衔统,輸入函數(shù)
>>> input('姓名: ')
姓名: LAIN
'LAIN'
  1. oct(),講十進制轉(zhuǎn)成八進制
>>> oct(222)
'0o336'
  1. staticmethod()海雪,跟類有關(guān)葬荷,后續(xù)補充
  2. bin()陪每,講十進制轉(zhuǎn)成二進制
>>> bin(333)
'0b101001101'
>>> bin(2)
'0b10'
  1. eval(),執(zhí)行字符串表達式,并返回結(jié)果
>>> eval(('7 + 1'))
8
  1. int()锅很,將字符串或者數(shù)字轉(zhuǎn)換成整型叫倍,可指定進制數(shù)
>>> int('22', 8)
18
>>> int('22', 16)
34
>>> int('22', 10)
22
  1. open()幕庐,文件操作解愤,打開或者創(chuàng)建文件等;
  2. str()侠鳄, 更改類型為字符串
>>> type(str({'name1':'lain', 'name2':'lilei', 'name3':'tom'}))
<class 'str'>
>>> type({'name1':'lain', 'name2':'lilei', 'name3':'tom'})
<class 'dict'>
  1. bool()埠啃,返回布爾值
>>> bool()
False
>>> bool(2)
True
  1. exec(),執(zhí)行儲存在字符串或文件中的 Python 語句伟恶,相比于 eval碴开,exec可以執(zhí)行更復(fù)雜的 Python 代碼
>>> exec('print("hello world")')
hello world
  1. isinstance(),判斷對象是否屬于某個數(shù)據(jù)類型
>>> isinstance('1', int)
False
>>> isinstance(1, int)
True
  1. ord()博秫,返回ascii碼表上的數(shù)字
>>> ord('A')
65
>>> ord('a')
97
  1. sum()潦牛,求和
>>> sum([1, 2, 3])
6
>>> sum((2, 3, 4))
9
  1. bytearray(),返回一個新字節(jié)數(shù)組挡育。這個數(shù)組里的元素是可變的巴碗,并且每個元素的值范圍: 0 <= x < 256
如果 source 為整數(shù),則返回一個長度為 source 的初始化數(shù)組即寒;
如果 source 為字符串橡淆,則按照指定的 encoding 將字符串轉(zhuǎn)換為字節(jié)序列召噩;
如果 source 為可迭代類型,則元素必須為[0 ,255] 中的整數(shù)明垢;
如果 source 為與 buffer 接口一致的對象蚣常,則此對象也可以被用于初始化 bytearray市咽。
如果沒有輸入任何參數(shù)痊银,默認就是初始化數(shù)組為0個元素。
>>> bytearray([1, 2, 3])
bytearray(b'\x01\x02\x03')
>>> bytearray('jianshu.com', 'utf-8')
bytearray(b'jianshu.com')
  1. filter() 函數(shù)用于過濾序列施绎,過濾掉不符合條件的元素溯革,返回一個迭代器對象,如果要轉(zhuǎn)換為列表谷醉,可以使用 list() 來轉(zhuǎn)換致稀。該接收兩個參數(shù),第一個為函數(shù)俱尼,第二個為序列抖单,序列的每個元素作為參數(shù)傳遞給函數(shù)進行判,然后返回 True 或 False遇八,最后將返回 True 的元素放到新列表中
def is_odd(n):
    return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5])
newlist = list(tmplist)
print(tmplist)
print(newlist)
執(zhí)行結(jié)果:
<filter object at 0x021195F0>
[1, 3, 5]
  1. issubclass()矛绘,類相關(guān)函數(shù)后續(xù)補充
  2. pow(),冪函數(shù)
>>> pow(2, 2)
4
>>> pow(2, 3)
8
  1. super()刃永,類相關(guān)函數(shù)后續(xù)補充
  2. bytes()货矮,將對象類型轉(zhuǎn)換為字節(jié)
>>> bytes(2)
b'\x00\x00'
>>> bytes('i', encoding='utf-8')
b'i'
  1. float(),將對象類型轉(zhuǎn)換為浮點數(shù)
>>> float(100)
100.0
>>> float(-12)
-12.0
  1. iter()斯够,生成迭代器囚玫,使其具備next()功能
>>> a = [1, 2, 3]
>>> b = iter(a)
>>> next(b)
1
>>> next(b)
2
>>> next(b)
3
  1. print(),打印函數(shù)
>>> print('Hello World')
Hello World
  1. tuple()读规,將對象轉(zhuǎn)換成元組類型
>>> tuple()
()
>>> tuple('lain')
('l', 'a', 'i', 'n')
>>> tuple(['lain', 'baidu', 'FB', 'alibaba'])
('lain', 'baidu', 'FB', 'alibaba')
  1. callable()抓督,判斷對象是否可以被調(diào)用
>>> callable(0)
False
>>> callable('lain')
False
>>> def add(a):
    print(a)
>>> callable(add)
True
  1. format(),字符串格式化
>>> print('my name is {0}'.format('lain'))
my name is lain
  1. len()束亏,計算長度或者元素個數(shù)
    
>>> len('jianshu.com')
11
>>> len(['lain', 'baidu', 'FB', 'alibaba'])
4
  1. property()铃在,類相關(guān)函數(shù)后續(xù)補充
  2. type(),查看對象數(shù)據(jù)類型
    
>>> type(3)
<class 'int'>
>>> type(['lain', 23, 'shenzhen'])
<class 'list'>
  1. chr()枪汪,與ord相反涌穆,給出ascii碼表中對應(yīng)得數(shù)字,返回字符
>>> ord('a')
97
>>> chr(97)
'a'
  1. frozenset()雀久,創(chuàng)建冰凍集合此集合不可增刪改
>>> frozenset([2, 3, 4, 6])
frozenset({2, 3, 4, 6})
  1. list()宿稀,將對象轉(zhuǎn)換成列表
>>> list('hello world')
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
  1. range(),返回可迭代對象
>>> range(10)
range(0, 10)
  1. vars()赖捌,返回字典
>>> x = 1
>>> scope = vars()
>>> scope["x"]
1
  1. classmethod()祝沸,類相關(guān)函數(shù)后續(xù)補充
  2. getattr()矮烹,類相關(guān)函數(shù)后續(xù)補充
  3. locals(),返回當(dāng)前作用域下局部變量
locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': 1, 'b': 2, 'add': <function add at 0x02E6DA50>, 'x': 1, 'scope': {...}}
  1. repr()罩锐,類似print打印
>>> repr(a)
'1'
  1. zip()奉狈,用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組涩惑,然后返回由這些元組組成的對象仁期,這樣做的好處是節(jié)約了不少的內(nèi)存
>>> a = [1, 2, 3, 4, 5]
>>> b = ['a', 'b', 'c', 'd', 'e']
>>> list(zip(a, b))
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
  1. compile(),將一個字符串編譯為字節(jié)代碼
>>> a = '3 + 6'
>>> eval(compile(a, '', 'eval'))     
9
  1. globals()竭恬,會以字典類型返回當(dāng)前位置的全部全局變量
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': '3 + 6', 'b': ['a', 'b', 'c', 'd', 'e'], 'add': <function add at 0x02E6DA50>, 'x': 1, 'scope': {...}}
  1. map()跛蛋,會根據(jù)提供的函數(shù)對指定序列做映射,第一個參數(shù) function 以參數(shù)序列中的每一個元素調(diào)用 function 函數(shù)痊硕,返回包含每次 function 函數(shù)返回值的新列表
calc = lambda x, y: x * y
data = map(calc, [1, 2, 3, 4, 5], [6, 7, 8, 9, 10])  #將第一個列表和第二個列表分別當(dāng)做參數(shù)x赊级,y
for i in data:
    print(i,end=' ')

運行結(jié)果:
6 14 24 36 50
  1. reversed(),返回一個反轉(zhuǎn)的迭代器
<class 'reversed'>
>>> reversed([1, 2, 4])
<list_reverseiterator object at 0x02E4EAD0>
>>> a = reversed([1, 2, 3, 5])   #list結(jié)果是一個反轉(zhuǎn)的列表迭代器
>>> list(a)
[5, 3, 2, 1]
>>> list(a)  #第二次list就是空
[]
>>> type(a)
<class 'list_reverseiterator'>
  1. import()岔绸,動態(tài)加載類或者函數(shù)以及模塊
>>> __import__('time')  #類似于import time
<module 'time' (built-in)>
>>> import time
  1. complex()理逊,用于創(chuàng)建一個值為 real + imag * j 的復(fù)數(shù)或者轉(zhuǎn)化一個字符串或數(shù)為復(fù)數(shù)。如果第一個參數(shù)為字符串盒揉,則不需要指定第二個參數(shù)
>>> complex(1, 2)
(1+2j)
>>> complex('1')
(1+0j)
>>> complex('1+2j') 
(1+2j)
  1. hasattr()晋被,類相關(guān)函數(shù)后續(xù)補充
  2. max(),返回最大值
>>> max([1, 2, 3, 4])
4
>>> max(1, 2, 3, 5)
5
  1. round()预烙,四舍五入墨微,可以指定小數(shù)位數(shù)
>>> round(3.4)
3
>>> round(4.6)
5
>>> round(3.1415926, 3)
3.142
>>> round(3.1415926, 2)
3.14
  1. delattr(),類相關(guān)函數(shù)后續(xù)補充
  2. hash()扁掸,返回對象的哈希值
>>> hash('jianshu.com')
1705446308
>>> hash(15278569)
15278569
  1. memoryview()翘县,返回obj的內(nèi)存視圖對象;obj只能是bytes或bytesarray類型
>>> a = memoryview(b'jianshu.com')
>>> a[:]
<memory at 0x02E3E6B0>
  1. set()谴分,將對象轉(zhuǎn)換為集合
>>> a = set([1, 2, 3, 4, 5])
>>> type(a) 
<class 'set'>
>>> type(set())
<class 'set'>
>>> type(set('hello world'))
<class 'set'>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锈麸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子牺蹄,更是在濱河造成了極大的恐慌忘伞,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沙兰,死亡現(xiàn)場離奇詭異氓奈,居然都是意外死亡,警方通過查閱死者的電腦和手機鼎天,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門舀奶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人斋射,你說我怎么就攤上這事育勺〉纾” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵涧至,是天一觀的道長腹躁。 經(jīng)常有香客問我,道長南蓬,這世上最難降的妖魔是什么纺非? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮蓖康,結(jié)果婚禮上铐炫,老公的妹妹穿的比我還像新娘垒手。我一直安慰自己蒜焊,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布科贬。 她就那樣靜靜地躺著泳梆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榜掌。 梳的紋絲不亂的頭發(fā)上优妙,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音憎账,去河邊找鬼套硼。 笑死,一個胖子當(dāng)著我的面吹牛胞皱,可吹牛的內(nèi)容都是我干的邪意。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼反砌,長吁一口氣:“原來是場噩夢啊……” “哼雾鬼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宴树,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤策菜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后酒贬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體又憨,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年锭吨,在試婚紗的時候發(fā)現(xiàn)自己被綠了蠢莺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡耐齐,死狀恐怖浪秘,靈堂內(nèi)的尸體忽然破棺而出蒋情,到底是詐尸還是另有隱情,我是刑警寧澤耸携,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布棵癣,位于F島的核電站,受9級特大地震影響夺衍,放射性物質(zhì)發(fā)生泄漏狈谊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一沟沙、第九天 我趴在偏房一處隱蔽的房頂上張望河劝。 院中可真熱鬧,春花似錦矛紫、人聲如沸赎瞎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽务甥。三九已至,卻和暖如春喳篇,著一層夾襖步出監(jiān)牢的瞬間敞临,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工麸澜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挺尿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓炊邦,卻偏偏與公主長得像编矾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铣耘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 〇洽沟、前言 本文共108張圖,流量黨請慎重蜗细! 歷時1個半月裆操,我把自己學(xué)習(xí)Python基礎(chǔ)知識的框架詳細梳理了一遍。 ...
    Raxxie閱讀 18,954評論 17 410
  • 一炉媒、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,816評論 2 16
  • 女兒像旋風(fēng)一樣一進門就沖到我面前踪区,嘟著小嘴聲音不大的說:媽媽我這次沒考好。我自顧忙碌著吊骤,正在結(jié)束廚房的最后一趟...
    浩淼閱讀 592評論 1 1
  • 今天在高新店樓梯的墻面上看到這幅雞湯 并不是第一次看到缎岗,今天卻感覺內(nèi)心一動。人生有起有伏白粉,沒有一直向上传泊,也沒有一直...
    Panda盼子閱讀 777評論 1 0
  • 文|東東 1 鄭州扯淡事 每次回家不得不提鄭州眷细。除了每次坐火車都需要從鄭州中轉(zhuǎn)之外拦盹,還有一個原因,因為鄭州是我故土...
    郝東東閱讀 156評論 0 1