- 內(nèi)置函數(shù)
什么是內(nèi)置函數(shù)? 就是python給你提供的. 拿來直接用的函數(shù), 比如print., input等等. 截?止 到python版本3.6.2 python一共提供了了68個(gè)內(nèi)置函數(shù). 他們就是python直接提供給我們的.
作用域相關(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)
- 列表和元祖:
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