DAY5-內(nèi)置函數(shù)

  • 內(nèi)置函數(shù)

什么是內(nèi)置函數(shù)? 就是python給你提供的. 拿來直接用的函數(shù), 比如print., input等等. 截?止 到python版本3.6.2 python一共提供了了68個(gè)內(nèi)置函數(shù). 他們就是python直接提供給我們的.

image.png
  • 作用域相關(guān):
    locals() 返回當(dāng)前作用域中的名字
    globals() 返回全局作用域中的名字

  • 迭代器相關(guān):
    range() :生成數(shù)據(jù)
    next(): 迭代器向下執(zhí)行一次, 內(nèi)部實(shí)際使?用了 __ next __() 方法返回迭代器的下?個(gè)項(xiàng)目
    iter() : 獲取迭代器,內(nèi)部使用 __ iter() __?法來獲取迭代器

  • 字符串類型代碼的執(zhí)行
    eval() 執(zhí)行字符串類型的代碼,并返回最終結(jié)果癌别,有返回值

print(eval("2+2"))   # 4
n = 8
print(eval("2+n"))   #10

def func():
      print(666)
eval("func")      # 666

exec() 執(zhí)行字符串類型的代碼,不會(huì)有返回值

exec("""
for i in range(10):
      print(i) 
""")

exec(""" 
def func():
       print("我是周杰倫") 
func() 
""")

compile()將字符串類型的代碼編譯,代碼對(duì)象能夠通過exec()語句或者eval()進(jìn)行求值拜马,有交互用single模式。

'''
參數(shù)說明:
1. resource 要執(zhí)?行行的代碼, 動(dòng)態(tài)代碼?片段
2. ?文件名, 代碼存放的?文件名, 當(dāng)傳?入了了第?一個(gè)參數(shù)的時(shí)候, 這個(gè)參數(shù)給空就可以了了
3. 模式, 取值有3個(gè),
   3.1. exec: ?一般放?一些流程語句句的時(shí)候
   3.2. eval: resource只存放?一個(gè)求值表達(dá)式.
   3.3. single: resource存放的代碼有交互的時(shí)候. mode應(yīng)為single
'''
s1 = "for i in range(10): print(i)"
cl = compile(s1"",mode="exec")
exec(c)

s2 = "1+2+3"
c2=compile(s2,"",model="eval")
a=eval(c2)
print(a)

code3 = "name = input('請(qǐng)輸?入你的名字:')"
c3 = compile(code3, "", mode="single")
exec(c3)
print(name)

有返回值的字符串形式的代碼用eval()沐绒。沒有返回值的字符串形式的代碼用exec俩莽。一般很少用到compile()

  • 輸入和輸出相關(guān):
    input() 獲取用戶輸入的內(nèi)容
    print() 打印輸出

  • 內(nèi)存相關(guān):
    hash() 獲取到對(duì)象的哈希值(int,str,bool,tuple)
    id() 獲取到對(duì)象的內(nèi)存地址

  • 文件操作相關(guān):
    open() 用于口打開一個(gè)文件,創(chuàng)建一個(gè)文件句柄

  • 模塊相關(guān):
    import() 用于動(dòng)態(tài)加載類和函數(shù)

  • 幫助:
    help() 用于查看函數(shù)或模塊用途的詳細(xì)說明

  • 調(diào)用相關(guān)
    callable() 用于檢查一個(gè)對(duì)象是否是可調(diào)用的乔遮,如果返回True扮超,object有可能調(diào)用失敗, 但如果返回False. 那調(diào)用絕對(duì)不會(huì)成功

  • 查看內(nèi)置屬性:
    dir() 查看對(duì)象的內(nèi)置屬性,方法蹋肮,訪問的是對(duì)象中的dir()方法

  • 數(shù)字相關(guān):
    bool() 講給定的數(shù)據(jù)轉(zhuǎn)換成bool值出刷,如果不給值,則返回false
    int() 將給定的數(shù)據(jù)轉(zhuǎn)換成為int值,如果不給值坯辩,則返回0
    float() 將給定的數(shù)據(jù)轉(zhuǎn)換成為float值馁龟,也就是小數(shù)。
    complex() 創(chuàng)建一個(gè)復(fù)數(shù)漆魔,第一個(gè)參數(shù)為實(shí)部坷檩,第二個(gè)參數(shù)為虛部却音,或者第?個(gè)參數(shù)直接 用字符串來描述復(fù)數(shù)。(函數(shù)用于創(chuàng)建一個(gè)值為 real + imag * j 的復(fù)數(shù)或者轉(zhuǎn)化一個(gè)字符串或數(shù)為復(fù)數(shù)矢炼。如果第一個(gè)參數(shù)為字符串系瓢,則不需要指定第二個(gè)參數(shù)。)

  • 進(jìn)制轉(zhuǎn)換:
    bin() 將給的參數(shù)轉(zhuǎn)換成二進(jìn)制
    otc() 將給的參數(shù)轉(zhuǎn)換成八進(jìn)制
    hex() 將給的參數(shù)轉(zhuǎn)換成十六進(jìn)制

  • 數(shù)學(xué)運(yùn)算:
    abs() 返回絕對(duì)值
    divmode() 返回商和余數(shù)
    round() 四舍五入
    pow(a,b) 求a的b次冪句灌,如果有三個(gè)參數(shù)夷陋,則求完次冪后對(duì)第三個(gè)數(shù)取余。
    sum() 求和
    min() 求最小值
    max() 求最大值

  • 數(shù)據(jù)結(jié)構(gòu)相關(guān)

  1. 列表和元祖:
    list() 將一個(gè)可迭代對(duì)象轉(zhuǎn)換成列表
    tuple() 將一個(gè)可迭代對(duì)象轉(zhuǎn)換成元祖
    reversed() 將一個(gè)序列反轉(zhuǎn)涯塔,返回反轉(zhuǎn)序列的迭代器
    slice() 列表的切片,返回一個(gè)切片對(duì)象(class slice(start, stop[, step]) start -- 起始位置 stop -- 結(jié)束位置 step -- 間距)
st = "大家好, 我是麻花藤" 
s = slice(1, 5, 2) 
print(st[s])
  • 字符串相關(guān):
    str() 將數(shù)據(jù)轉(zhuǎn)化成字符串
    format() 與具體數(shù)據(jù)相關(guān),用于計(jì)算各種小數(shù),精算等清蚀。
# 字符串
print(format('test', '<20'))   # 左對(duì)?
print(format('test', '>20'))   # 右對(duì)齊
print(format('test', '^20'))   # 居中
# 數(shù)值
print(format(3, 'b')) # ?進(jìn)制
print(format(97, 'c')) # 轉(zhuǎn)換成unicode字符
print(format(11, 'd')) # ?進(jìn)制
print(format(11, 'o')) # 八進(jìn)制
print(format(11, 'x')) # 十六進(jìn)制(?寫字母)
print(format(11, 'X')) # 十六進(jìn)制(?寫字母)
print(format(11, 'n')) # 和d一樣
print(format(11)) # 和d一樣
#  浮點(diǎn)數(shù)
print(format(123456789, 'e')) # 科學(xué)計(jì)數(shù)法. 默認(rèn)保留留6位?數(shù)
print(format(123456789, '0.2e')) # 科學(xué)計(jì)數(shù)法. 保留2位小數(shù)(小寫)
print(format(123456789, '0.2E')) # 科學(xué)計(jì)數(shù)法. 保留2位小數(shù)(大寫)
print(format(1.23456789, 'f')) # 小數(shù)點(diǎn)計(jì)數(shù)法. 保留6位小數(shù)
print(format(1.23456789, '0.2f')) # 小數(shù)點(diǎn)計(jì)數(shù)法. 保留留2位?數(shù)
print(format(1.23456789, '0.10f')) # 小數(shù)點(diǎn)計(jì)數(shù)法. 保留留10位?數(shù)
print(format(1.23456789e+10000, 'F')) # 小數(shù)點(diǎn)計(jì)數(shù)法.

byte() 把字符串轉(zhuǎn)化成byte類型

s = "你好"
bs=s.encode("UTF-8")
print(bs)
s1=bs.decode("UTF-8")
print(s1)

bs = bytes(s, encoding="utf-8") 
print(bs)

結(jié)果:
b'\xe4\xbd\xa0\xe5\xa5\xbd'
你好
b'\xe4\xbd\xa0\xe5\xa5\xbd'

bytearray() 返回一個(gè)新字節(jié)數(shù)組匕荸,這個(gè)數(shù)字里的元素是可變的,并且每個(gè)元素的值的范圍是[0,256]

ret = bytearray('alex',encoding='utf-8')
print(ret[0])
print(ret)

結(jié)果:
97
bytearray(b'alex')

memoryview()查看bytes在內(nèi)存中的情況

# 查看bytes字節(jié)在內(nèi)存中的情況
s = memoryview("麻花藤".encode("utf-8"))
print(s)

結(jié)果:
<memory at 0x10d88ef48>

ord() 輸入字符找?guī)ё址幋a的位置
chr() 輸入位置數(shù)字找出對(duì)應(yīng)的字符
ascii() 是ascii碼中的返回該值 不是就返回\u...

# 找到對(duì)應(yīng)字符的編碼位置
print(ord('a'))
print(ord('中'))

# 找到對(duì)應(yīng)編碼位置的字符
print(chr(97))
print(chr(20013))

# 在ascii中就返回這個(gè)值. 如果不不在就返回\u...
print(ascii('a'))
print(ascii('好'))

結(jié)果:
97
20013
a
中
'a'
'\u597d'
  • 數(shù)據(jù)集合:
    dict() 創(chuàng)建一個(gè)字典
    set() 創(chuàng)建一個(gè)集合
    frozenset()創(chuàng)建一個(gè)凍結(jié)的集合枷邪,凍結(jié)的集合不能進(jìn)行添加和刪除操作榛搔。

  • 其他相關(guān):
    len() 返回?一個(gè)對(duì)象中的元素的個(gè)數(shù)
    sorted() 對(duì)可迭代對(duì)象進(jìn)?行行排序操作
    enumerate() 獲取集合的枚舉對(duì)象

lst = ["alex", "wusir", "taibai"]
for index, el in enumerate(lst):
     print(str(index)+"==>"+el)
結(jié)果:
0==>alex
1==>wusir
2==>taibai

all() 可迭代對(duì)象中全部是True, 結(jié)果才是True
any() 可迭代對(duì)象中有一個(gè)是True, 結(jié)果就是True

print(all([1,2,True,0])) 
print(any([1,'',0]))

zip() 函數(shù)用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)元組东揣,然后返回由這些元組組成的列表践惑。

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包為元組的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素個(gè)數(shù)與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 與 zip 相反,*zipped 可理解為解壓嘶卧,返回二維矩陣式
[(1, 2, 3), (4, 5, 6)]

filter() 函數(shù)用于過濾序列尔觉,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表芥吟。
該接收兩個(gè)參數(shù)侦铜,第一個(gè)為函數(shù),第二個(gè)為序列钟鸵,序列的每個(gè)元素作為參數(shù)傳遞給函數(shù)進(jìn)行判钉稍,然后返回 True 或 False,最后將返回 True 的元素放到新列表中棺耍。

def is_odd(n):
    return n % 2 == 1

newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
for i in newlist:
    print(i)

結(jié)果:
1
3
5
7
9

import math

# 過濾出1~100中平方根是整數(shù)的數(shù):
def is_sqr(x):
    return math.sqrt(x) % 1 == 0


newlist = filter(is_sqr, range(1, 101))
print(list(newlist))

結(jié)果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

map() 會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射贡未。
第一個(gè)參數(shù) function 以參數(shù)序列中的每一個(gè)元素調(diào)用 function 函數(shù),返回包含每次 function 函數(shù)返回值的新列表蒙袍。


def square(x) :            # 計(jì)算平方數(shù)
     return x ** 2


i = map(square, [1, 2, 3, 4, 5])
print(list(i))

iterator = map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函數(shù)
print(list(iterator))
# 提供了兩個(gè)列表俊卤,對(duì)相同位置的列表數(shù)據(jù)進(jìn)行相加
ret = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
print(ret)
print(list(ret))

結(jié)果:
[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25]
<map object at 0x108273630>
[3, 7, 11, 15, 19]

參考資料料: https://www.processon.com/view/link/5b4ee15be4b0edb750de96ac

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市害幅,隨后出現(xiàn)的幾起案子瘾蛋,更是在濱河造成了極大的恐慌,老刑警劉巖矫限,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哺哼,死亡現(xiàn)場(chǎng)離奇詭異佩抹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)取董,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門棍苹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茵汰,你說我怎么就攤上這事枢里。” “怎么了蹂午?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵栏豺,是天一觀的道長。 經(jīng)常有香客問我豆胸,道長奥洼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任晚胡,我火速辦了婚禮灵奖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘估盘。我一直安慰自己瓷患,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布遣妥。 她就那樣靜靜地躺著擅编,像睡著了一般。 火紅的嫁衣襯著肌膚如雪箫踩。 梳的紋絲不亂的頭發(fā)上沙咏,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音班套,去河邊找鬼肢藐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吱韭,可吹牛的內(nèi)容都是我干的吆豹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼理盆,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼痘煤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起猿规,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤衷快,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后姨俩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蘸拔,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡师郑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了调窍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宝冕。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖邓萨,靈堂內(nèi)的尸體忽然破棺而出地梨,到底是詐尸還是另有隱情,我是刑警寧澤缔恳,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布宝剖,位于F島的核電站,受9級(jí)特大地震影響歉甚,放射性物質(zhì)發(fā)生泄漏万细。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一铃芦、第九天 我趴在偏房一處隱蔽的房頂上張望雅镊。 院中可真熱鬧襟雷,春花似錦刃滓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至计呈,卻和暖如春砰诵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捌显。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工茁彭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扶歪。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓理肺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親善镰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妹萨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,216評(píng)論 0 4
  • 內(nèi)置函數(shù)Python解釋器內(nèi)置了許多功能和類型,總是可用的。他們是按字母順序列在這里炫欺。 abs(x)返回一個(gè)數(shù)的絕...
    uangianlap閱讀 1,227評(píng)論 0 0
  • ??引用類型的值(對(duì)象)是引用類型的一個(gè)實(shí)例品洛。 ??在 ECMAscript 中树姨,引用類型是一種數(shù)據(jù)結(jié)構(gòu)摩桶,用于將數(shù)...
    霜天曉閱讀 1,042評(píng)論 0 1
  • 1、abs() 描述: 函數(shù)返回?cái)?shù)字的絕對(duì)值 語法:abs() 參數(shù):x--數(shù)值表達(dá)式娃弓,可以是整數(shù)典格,浮點(diǎn)數(shù),...
    清清子衿木子水心閱讀 402評(píng)論 0 0
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,370評(píng)論 0 5