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