Python-內建函數剖析(build-in function)


內建函數

  通過Python自帶的幫助文檔能查詢到Python所有的內build-in function內置函數,下面主要介紹如下常用內置函數,幫助手冊搜索隨意存在的內鍵函數則能找到如下表。

常用內置函數剖析:

標識:id,返回對象的唯一標識,cpython的內存地址

哈希:hash(),返回一個對象的hash值

類型:type(),返回對象的類型,例如,int、float、str、complex等

類型轉換:float() int() bin() hex() otc() bool() list() tuple() list() set() dict() complex() bytes() bytearray()   

輸入input(),接收用戶的輸入,返回一個字符串

打印:print(*objects,sep='',end='\n',file=sys.stdout.....):打印輸出,默認使用空格字符進行分隔,結尾換行,輸出到控制台,返回值為None

 

長度對象:len(),返回元素個數

isinstance(obj,class_or_tuple):判斷對象object是否是某種類型或元組中列出的某種類型,示例:isinstance(nums,(list,tuple,set))

issubclass(cls,class_or_tuple):判斷類型cls是否是某種類型的子類或元組中列出的某個類型的子類 issubclass(True,int) 

 

絕對值abx(x),x為數值,返回一個數的絕對值

最大值max(args1,args2,*args),最小值min(args1,args2,*args)  :返回最大值最小值

round(x),四舍六入五取偶(距離它最近的偶數)round(5.6) # 6 

pow(x,y),等價於x**y 

 

range(stop),從0開始到stop-1的可迭代對象,range(start,stop[step])從start開始到stop結束,步長為step的可迭代對象

divmod(x,y),等價於tuple(x//y,x%y)   

sum(iterable[,start])對可迭代對象求和,sum(range(1,10,2)  

 

 chr(i):給一定范圍內的整數,返回對應的字符 chr(97) a 示例:"".join(i for i in range(97,123))

import random
"".join(random.choices("".join(chr(i) for i in range(97,123)),k=20))
"".join(random.choices([chr(j) for j in range(97,123)],k=10))
"".join(random.choice([chr(j) for j in range(97,123)]) for j in range(10))
"".join([chr(random.randint(97,123)) for i in range(10)]) [ chr(i)
for i in range(97,123) ] #26個字母

ord():返回字符對應的十進制數,示例,ord('a') 

str():字符串

 

sorted(iterable):返回一個權限的列表,默認為升序

sorted([1,2,3])  # [1,2,3]
sorted([1,2,3],reverse=True) #[3,2,1]

reversed(seq):返回一個翻轉元素的迭代器

list(reversed('1234')) 
reversed(sorted({1,5,9})) #<list_reverseiterator at 0x1701f2e9780>

 

enumerate(seq,start=0)枚舉:迭代一個序列,返回索引數字和元組構成的二元組

start表示索引開始的位置,默認為0

for x in enumerate([2,4,6,8]):
    print(x)
輸出:
(0, 2)
(1, 4)
(2, 6)
(3, 8)

for x in enumerate('abcdef'):
  print(x)

 從任意下標開始可指定start=int傳參

for x  in enumerate([1, 2, 3, 4], start=1):
    print(x)


# outer 
D:\Preview\venv\Scripts\python.exe D:/Preview/t1.py
(1, 1)
(2, 2)
(3, 3)
(4, 4)

 

iter(iterable)、next(iterator,[,default]):iter將一個可迭代對象封裝成一個迭代器,next()對一個迭代器取下一個元素,如果全部元素都取過了,再次next()會拋出異常StopIteration 

it = iter(range(10))
next(it)

for x in it:
    print(x)

next(it)  #報錯拋異常

 

可迭代對象

  能夠通過迭代一次次返回不同的元素的對象,所謂相同,不是指值是否相同,而是元素在容器中是否是同一個,例如列表中值是可以重復的[1,1,2,2]雖然值是一樣,但是不同的元素

  可迭代對象未必有序,未必可索引

  可迭代對象有:list tuple set dict string bytes bytearray range set 生成器等

  可以使用成員運算符in not in in本質上是對線性結構遍歷對象,但是非線性結構采用的是hash值,效率很高。 

3 in range(10) # true
2 in (x for x in range(10)) #迭代器

 

迭代器

  特殊的對象,一定是可迭代對象,具備可迭代對象的特征,通過iter方法能將一個可迭代對象封裝成一個迭代器

  通過next()方法能將迭代器中的元素迭代,迭代器為惰性對象 

  生成器對象就是迭代器對象

for x in iter(range(10)): #iter能將可迭代對象封裝成迭代器
    print(x) 
可使用next()驅動
a = (x for x in range(10))
next(a)
type(a)
for i in a:
    print(i)
next(a)

 

拉鏈函數zip(*iterable):像拉鏈一樣,把多個可迭代對象合並在一起,返回一個迭代器,將每次從不同的對象中取到的元素合並成一個元組 

list(zip(range(10),range(3)))  #[(0, 0), (1, 1), (2, 2)]
list(zip(range(10),range(10),range(5),range(10))) #[(0, 0, 0, 0), (1, 1, 1, 1), (2, 2, 2, 2), (3, 3, 3, 3), (4, 4, 4, 4)] #取最短的
d = dict(zip(range(10),range(5))) #{0: 0, 1: 1, 2: 2, 3: 3, 4: 4}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM