Python 常見的內(nèi)置函數(shù)(一)

1. complex([real[,imag]])

返回一個復數(shù)磁奖,實部 + 虛部*1j,或者把字符串或者數(shù)字轉(zhuǎn)成復數(shù)形式。

參數(shù)可以是復數(shù)表達式梁钾,也可以是字符串。當參數(shù)是字符串的時候逊抡,數(shù)字與操作符之間不能有空格姆泻。即comple('1 + 2j')是錯誤的。

print(complex(1, 2))
print(complex(1 + 2j))
print(complex('1+2j'))
# 輸出 1+2j
print(complex(1))
# 輸出 1+0j

滿足:實部 + 虛部*1j 的數(shù)被稱為復數(shù)冒嫡。

a = 1 + 3j
# 求實部
print(a.real)
# 求虛部
print(a.imag)
# 求共軛
print(a.conjugate())

2. abs(x)

返回數(shù)的絕對值拇勃。參數(shù)可以是整數(shù)或者浮點數(shù)。如果參數(shù)是復數(shù)孝凌,返回復數(shù)的模方咆。Python 中虛數(shù)用數(shù)值加上字符 j 的形式表示。要注意 j 前面的數(shù)值不能省略胎许,比如 1j峻呛。

下面是我寫的簡易版的 abs 函數(shù):

from math import sqrt
def naive_abs(x):
    # isinstance 判斷參數(shù)x是否為整數(shù)或浮點數(shù)
    if isinstance(x, int) or isinstance(x, float):
        if x < 0:
            x = - x
    # 判斷參數(shù)x是否為復數(shù)
    elif isinstance(x, complex):
        # x.real 復數(shù)的實部 
        # x.imag 復數(shù)的虛部
        real = x.real
        imag = x.imag
        # 求復數(shù)的模
        x = sqrt(real ** 2 + imag ** 2)
    else :
        return '請輸入 int float complex'
    return x
print(abs(3+4j))
print(naive_abs(3+4j))
# 輸出 5.0
print(abs(-6))
print(naive_abs(-6))
# 輸出 6

3. all(iterable)

如果可迭代對象(如列表罗售,字典等)中的全部元素都為真值,或者可迭代對象為空钩述,返回True寨躁。等價于:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

舉例如下:

a = {'公眾號':'Python高效編程','關(guān)注':'沒問題','點贊':'必須的','收藏':None}
print(all(a))
# 輸出 True
b = {'公眾號':'Python高效編程','關(guān)注':'沒問題',None:'必須的','收藏':'小事情'}
print(all(b))
# 輸出 False
c = []
print(all(c))
# 輸出 True

首先要明確一點,Python 中字典迭代的元素是 key 而不是 value牙勘,所以 all(a) 輸出的值是 True职恳,all(b) 輸出的值為 False。而空列表輸出值是 True方面。

4. any(iterable)

如果可迭代對象中放钦,任何一個元素為真,就返回 True恭金。如果可迭代對象為空操禀,返回 False。等價于:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

舉個例子:

a = {'公眾號':'Python高效編程','關(guān)注':'沒問題','點贊':'必須的','收藏':None}
print(any(a))
# 輸出 True
b = {None:'Python高效編程',None:'沒問題',None:'必須的',None:'小事情'}
print(any(b))
# 輸出 False
c = {}
print(any(c))
# 輸出 False

5. bool([x])

返回 True or False

print(bool(1))
# 輸出 True
print(bool(0))
# 輸出 False

6. chr(i) 與 ord(i)

chr(i) 是將當前整數(shù) i 轉(zhuǎn)成對應的 ascii 字符横腿,可以是十進制颓屑,也可以是十六進制,其中0 <= i <= 0x10ffff (1114111)耿焊。其對應的逆操作為 ord(i)揪惦,i 為 ascii 字符。

下面的函數(shù)演示如何求一個可迭代對象的 ascil字符 或者其對應的數(shù)值罗侯。注意函數(shù) ordplus 器腋,參數(shù) x 中的每一個元素必須是單個字符,如果是列表钩杰,形式如下:[‘P’ , ‘y’, ‘t’ , ‘h’, ‘o’ , ‘n’]纫塌。

def chrplus(x):
    chr_string = ''
    for elem in x:
        chr_string += chr(elem)
    return chr_string

def ordplus(x):
    ord_list = []
    for elem in x:
        ord_list.append(ord(elem))
    return ord_list

x = 'Python高效編程'
temp = ordplus(x)
print(temp)
# 輸出[112, 121, 116, 104, 111, 110,
# 39640, 25928, 32534,31243]
init = chrplus(temp)
print(init)

7.enumerate(iterable, start=0)

返回 enumerate 對象。迭代對象必須是序列讲弄,迭代器护戳,或者其他支持迭代的對象。enmerate() 函數(shù)返回的是迭代器垂睬,同樣是可迭代對象媳荒。每次迭代的元素,都包含元素在序列里的序號(strat 默認值為 0) 和元素對應值驹饺。因此钳枕,我們可以用 for 循環(huán)獲取返回值。

等價于:

def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1

8.eval(expression, globals=None,locals=None)

參數(shù)為字符串赏壹、可選的全局變量和局部變量鱼炒。如果為可選參數(shù)賦值,globals 參數(shù)必須是字典蝌借,而 locals 參數(shù)可以是任意的映射對象昔瞧。

expression 參數(shù)被解析為 Python 表達式(更專業(yè)地說指蚁,條件列表),而且使用 globals 和 locals 字典作為全局與局部命名空間自晰。如果 globals 字典存在但不包括關(guān)鍵字__builtins__對應值凝化,對內(nèi)置模塊__builtins__的字典的引用就會在表達式被解析前被插入到關(guān)鍵字下面。這意味著酬荞,表達式一般可以接觸 builtins模塊搓劫,并且在有限的環(huán)境傳播。如果 locals 字典被省略混巧,默認為 globals 字典枪向。如果兩個字典都被省略,表達式在 eval() 函數(shù)被調(diào)用的環(huán)境下執(zhí)行咧党。返回值是表達式被計算的結(jié)果秘蛔。語法錯誤被當作異常處理。

這個函數(shù)還被用來執(zhí)行任意的代碼對象(比如通過 compile() 創(chuàng)建的對象)

9. filter(function, iterable)

由可迭代對象的元素構(gòu)造一個迭代器傍衡,函數(shù)返回 True缠犀。可迭代對象可能是一個序列聪舒、支持迭代的容器或者一個迭代器。如果函數(shù)為 None虐急,默認為恒等函數(shù)箱残。也就是說,可迭代對象的所有 False 元素將會被移除(filter(None, a))

注意到,filter(function, iterable) 等同于生成器表達式 (item for item in iterable if function(item)) 如果 function 不為 None止吁,和 (item for item in iterable if item),如果函數(shù)為 None被辑。
filter 返回生成器,如果想得到列表敬惦,要加上 list 操作盼理。

a = [1, 3, -5, 12, 7, -3, -1, 0]
list(filter(lambda x: x < 0, a))
# 輸出為: [-5, -3, -1]

10. format(value[,format_spec])
用于格式化輸出字符串。

把值轉(zhuǎn)變?yōu)橛?format_spec格式化表達俄删。對 format_spec的解釋要取決于參數(shù) value 的類型宏怔,但是大多數(shù)內(nèi)置類型采用標準格式語法。

默認的 format_spec 是一個空字符串畴椰,通常與 str(value) 有相同作用臊诊。

format(value, format_spec)被解釋成 type(value).__format__(value, format_spec)。后者在搜索值的 __format__()方法時繞過實例字典斜脂。如果方法搜索到達對象且 format_spec不為空或者format_spec或者返回值不為字符串抓艳。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市帚戳,隨后出現(xiàn)的幾起案子玷或,更是在濱河造成了極大的恐慌儡首,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偏友,死亡現(xiàn)場離奇詭異蔬胯,居然都是意外死亡,警方通過查閱死者的電腦和手機约谈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門笔宿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棱诱,你說我怎么就攤上這事泼橘。” “怎么了迈勋?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵炬灭,是天一觀的道長。 經(jīng)常有香客問我靡菇,道長重归,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任厦凤,我火速辦了婚禮鼻吮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘较鼓。我一直安慰自己椎木,他們只是感情好,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布博烂。 她就那樣靜靜地躺著香椎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪禽篱。 梳的紋絲不亂的頭發(fā)上畜伐,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機與錄音躺率,去河邊找鬼玛界。 笑死,一個胖子當著我的面吹牛悼吱,可吹牛的內(nèi)容都是我干的脚仔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舆绎,長吁一口氣:“原來是場噩夢啊……” “哼鲤脏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤猎醇,失蹤者是張志新(化名)和其女友劉穎窥突,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硫嘶,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡阻问,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了沦疾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片称近。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哮塞,靈堂內(nèi)的尸體忽然破棺而出刨秆,到底是詐尸還是另有隱情,我是刑警寧澤忆畅,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布衡未,位于F島的核電站,受9級特大地震影響家凯,放射性物質(zhì)發(fā)生泄漏缓醋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一绊诲、第九天 我趴在偏房一處隱蔽的房頂上張望送粱。 院中可真熱鬧,春花似錦掂之、人聲如沸抗俄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至偎快,卻和暖如春冯乘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晒夹。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工裆馒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丐怯。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓喷好,卻偏偏與公主長得像,于是被迫代替她去往敵國和親读跷。 傳聞我的和親對象是個殘疾皇子梗搅,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

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

  • 內(nèi)置函數(shù)Python解釋器內(nèi)置了許多功能和類型,總是可用的。他們是按字母順序列在這里。 abs(x)返回一個數(shù)的絕...
    uangianlap閱讀 1,239評論 0 0
  • 1无切、abs() 描述: 函數(shù)返回數(shù)字的絕對值 語法:abs() 參數(shù):x--數(shù)值表達式荡短,可以是整數(shù),浮點數(shù)哆键,...
    清清子衿木子水心閱讀 412評論 0 0
  • 前言 python實現(xiàn)一些功能特別方便掘托,一般用于快速生成程序的原型,后期可以使用更加適合的語言編寫籍嘹。跟緊時代的腳步...
    九風萍舟閱讀 744評論 0 1
  • 片片落葉飛辱士,陣陣細雨飄泪掀! 一眨眼,冬天就來了识补! 說好的每個月為丫頭寫一篇成長記錄的族淮,從出生到現(xiàn)在已經(jīng)九個月了,翻翻...
    思明隨筆閱讀 2,239評論 0 1
  • ? 無法改變原則的話不說凭涂。 ? 會造成分化效果的話不說祝辣。 ? 贊美人雖然是最好的說話方法,但是千萬不要再贊美甲的同...
    彼岸錦時閱讀 263評論 0 0