萬惡之源 - Python內置函數一
內置函數
什麽是內置函數?就是python幫我們提供的一個工具,拿過直接用就行,比如我們的print,input,type,id等等.截止到python3.6.2版本
中一共提供了68個內置函數.他們就是python直接提供給我們的,有一些我們已經用過了.有一些還沒有用過.還有一我們需要學完面向對象才能繼續學習.今天我們認識一下python的內置函數
作用域相關
locals() 返回當前作用域中的名字
globals() 返回全局作用域中的名字
叠代器相關
range() 生成數據
next() 叠代器向下執行一次,內部實際使用了__next__()方法返回叠代器的下一個項目
iter() 獲取叠代器,內部實際使用的是__iter__()方法來獲取叠代器
字符串類型代碼的執行
eval() 執行字符串類型的代碼,並返回最終結果
print(eval(‘2+8‘)) 結果: 10 n = 8 print(eval(‘n + 10‘)) 結果: 18
exec() 執行字符串類型的代碼
exec(‘‘‘ for i in range(10): print(i) ‘‘‘) # 我們按照python能夠識別的語法寫代碼,這次寫入的是字符串也可以執行 exec(‘‘‘ def func(): print("444") func() ‘‘‘) 結果: 444
compile() 將字符串類型的代碼變異,代碼對象能夠通過exec語句來執行或者eval()進行求值
‘‘‘ 參數說明: 1.resource #辦法 要執行的代碼,動態代碼片段 2.文件名,代碼存放的文件名,當傳入了第一個參數的時候,這個參數給空就可以了 3.模式,取值有3個 1.exec 一般放一些流程語句的時候 2.eval resource只存放一個求值的表達式 3.single resource存放的代碼有交互的時候.mode應為single ‘‘‘ code = ‘for i in range(10):print(i)‘ c1 = compile(code,‘‘,mode=‘exec‘) exec(c1) # 使用exec沒有返回值 code1 = ‘1+2+4‘ c2 =compile(code1,‘‘,mode=‘eval‘) a = eval(c2) # 使用eval有返回值 print(a) code = ‘s = input("請輸入內容");print(s)‘ c1 = compile(code,‘‘,mode=‘single‘) exec(c1) #使用exec沒有返回值
通過上邊的測試發現,只要是exec就沒有返回值,eval就是有返回值的,compile不怎麽常用
輸入和輸出相關
input() 獲取用戶輸入的內容
print() 打印 輸出
內存相關
hash() 獲取對象的哈希值(int.str,bool,tuple)
id() 獲取到對象的內存地址
文件操作相關
open() 用於打開一個文件,創建一個文件句柄
模塊相關
__import__() 用於動態加載類和函數
幫助
help() 函數用於查看函數或模塊用途的詳細說明
調用相關
callable() 用於檢查一個對象是否是可調用的,如果返回True,object有可能調用失敗,要是返回False,那調用絕對就完犢子
查看內存屬性
dir() 查看對象的內置屬性,方法,訪問的是對象的__dir__()方法
基礎數據類型相關
數字相關:
bool() 將給定的數據轉換成bool值,如果不給值.返回False
int() 將給定的數據轉換成int值,如果不給值,返回0
float() 將給定的數據轉換成float值,也就上次小數
compilex() 創建一個復數,第一個參數為實部,第二個參數為虛部.或者第一個參數直接用字符串來描述復數
進制轉換:
bin() 將給的參數轉換成二進制
otc() 將給的參數轉換成八進制
hex() 將給的參數轉換成十六進制
數字運算:
abs() 求絕對值
divmode() 返回商和余數
round() 四舍五入
pow(a,b) 求a的b次冪,如果有個三次參數,則求萬次冪後對第三方個數取余
sum() 求和
min() 求最小值
max() 求最大值
數據結構相關
列表和元祖
list() 將一個可叠代對象轉換成列表
tuple() 將一個可叠代對象轉換成元祖
reverse() 將一個序列反轉,返回反轉序列的叠代器
slice() 列表的切片
a = ‘大家好我是武松‘ s1 = slice(1,8,2) print(a[s1]) 結果: 家我武
字符串相關:
str() 將數據轉化成字符串
format() 與具體數相關,用於計算各種小數,精算等
字符串
# 字符串 # print(format(‘meet‘,‘<20‘)) #左對齊 # print(format(‘meet‘,‘>20‘)) #右對齊 # print(format(‘meet‘,‘^20‘)) #居中 結果: meet meet meet
數值
#數值 print(format(3,‘b‘)) # 二進制 print(format(97,‘c‘)) # 轉換成unicodezif print(format(11,‘d‘)) #十進制 print(format(56)) #和d一樣 print(format(11,‘n‘)) #十進制 print(format(11,‘o‘)) #八進制 print(format(11,‘x‘)) # 十六進制(小寫字母) print(format(11,‘X‘)) # 十六進制(大寫字母) # 浮點數 print(format(1234567890,‘e‘)) #科學計算法,默認使用6位 print(format(123456789,‘0.2e‘))# 科學計算,保留2位小數(小寫) print(format(123456789,‘0.2E‘))# 科學計算,保留2位小數(大寫) print(format(1.23456789,‘f‘)) #小數點計數法,保留6位小數 print(format(1.23456789,‘0.2f‘)) # 小數點計數法,保留2位數 print(format(1.23456789,‘0.10f‘)) # 小數點計數法,保留2位數 print(format(1.23456789e+1000,‘F‘)) # 小數點計數法
bytes() 把字符串轉換成bytes類型
s = ‘你好武大‘ bs = s.encode(‘utf-8‘) print(bs) 結果:b‘\xe4\xbd\xa0\xe5\xa5\xbd\xe6\xad\xa6\xe5\xa4\xa7‘ s1 = bs.decode(‘utf-8‘) print(s1) 結果: 你好武大 bs = bytes(s,encoding=‘utf-8‘) print(bs) 結果: b‘\xe4\xbd\xa0\xe5\xa5\xbd\xe6\xad\xa6\xe5\xa4\xa7‘ 把字符串編碼成utf-8
bytearray() 返回一個新字節數組,這個數字裏的元素是可變的,並且每個元素的值的範圍是0~256
ret = bytearray(‘meet‘,encoding=‘utf-8‘) print(ret) print(ret[0]) 結果: bytearray(b‘meet‘) 109
momoryview() 查看bytes的內存地址
s = memoryview(‘麻花藤‘.encode(‘utf-8‘)) print(s) # 結果: # <memory at 0x000001F332E0E288>
ord() 輸入字符找帶字符編碼的位置
print(ord(‘a‘)) print(ord(‘中‘)) print(ord(‘國‘)) 結果: 97 20013 22269 對應的是當前編碼
chr() 輸入位置數字找出對應的字符
print(chr(97)) # 找到對應位置的字符 print(chr(20013)) # 找到對應位置的字符 # 結果: a 中
ascii() 是ascii碼中的返回值 不是就返回\u
print(ascii(‘a‘)) 判斷字符串在不在ascii碼表中 print(ascii(‘中‘)) 結果: ‘a‘ ‘\u4e2d‘ 如果不存在就返回\u...
repr() 返回一個對象本質的形式
name = ‘alex‘ print(repr(name)) #返回這個對象本質的表示形式 結果: ‘alex‘ name = ‘我叫%r‘ print(name%‘meet‘) %r 用的就是repr 結果: 我叫‘meet‘
數據集合
dict() 創建一個字典
set() 創建一個集合
frozenset() 創建一個凍結的集合,凍結的集合不能進行添加和刪除操作
其他相關
len() 返回一個對象的元素個數
enumerate() 獲取枚舉對象
lst = [‘alex‘,‘wusir‘,‘taibai‘] for i,k in enumerate(lst): print(‘這是序號‘,i) print(‘這是元素‘,k)
all() 可叠代對象中全部是True,結果才是True
lst = [1,2,3,4,True,0,False] lst1 = [1,2,3,4,True] print(all(lst)) print(all(lst1)) 結果: False True
any() 可叠代對象中有一個是True,就是True
lst = [1,2,3,4,True,0,False] lst1 = [1,2,3,4,True] print(any(lst)) print(any(lst1)) 結果: False True
zip() 函數用於將可叠代的對象作為參數,將對象中對應的元素打包成一個個元祖,
然後返回由這些元祖組成的內容,如果各個叠代器的元素個數不一致,則按照長度最短的返回
lst1 = [1,2,3] lst2 = [‘a‘,‘b‘,‘c‘,‘d‘] lst3 = (11,12,13,14,15) for i in zip(lst1,lst2,lst3): print(i) 結果: (1, ‘a‘, 11) (2, ‘b‘, 12) (3, ‘c‘, 13)
lambda之後講解
sorted() 對可叠代對象進行排序
filter() 過濾
map() 會根據提供的函數對指定的序列做映射
參看質料
https://www.processon.com/view/link/5b4ee15be4b0edb750de96ac
萬惡之源 - Python內置函數一