Python学习教程:Python内置函数大总结(下篇)
这里接着上次的Python学习教程,给大家总结了Python 剩下的33个内置函数。
31 hash()
返回对象的哈希值
In [112]: hash(xiaoming)Out[112]: 6139638
32 help()
返回对象的帮助文档
In [113]: help(xiaoming)Help on Student in module __main__ object:class Student(builtins.object) | Methods defined here: | | __init__(self, id, name) | | __repr__(self) | | ---------------------------------------------------------------------- | Data descriptors defined here: | | __dict__ | dictionary for instance variables (if defined) | | __weakref__ | list of weak references to the object (if defined)
33 id()
返回对象的内存地址
In [115]: id(xiaoming)Out[115]: 98234208
34 input()
获取用户输入内容
In [116]: input()aaOut[116]: \'aa\'
35 int()
int(x, base =10) , x可能为字符串或数值,将x 转换为一个普通整数。如果参数是字符串,那么它可能包含符号和小数点。如果超出了普通整数的表示范围,一个长整数被返回。
In [120]: int(\'12\',16)Out[120]: 18
36 isinstance(object, classinfo)
判断object是否为类classinfo的实例,是返回true
In [20]: class Student(): ...: ...: def __init__(self,id,name): ...: ...: self.id = id ...: ...: self.name = name ...: ...: def __repr__(self): ...: ...: return \'id = \'+self.id +\', name = \'+self.name ...:In [21]: xiaoming = Student(\'001\',\'xiaoming\')In [22]: isinstance(xiaoming,Student)Out[22]: True
37 issubclass(class, classinfo)
如果class是classinfo类的子类,返回True:
In [27]: class undergraduate(Student): ...: def studyClass(self): ...: pass ...: def attendActivity(self): ...: pass ...:In [28]: issubclass(undergraduate,Student)Out[28]: TrueIn [29]: issubclass(object,Student)Out[29]: FalseIn [30]: issubclass(Student,object)Out[30]: True
如果class是classinfo元组中某个元素的子类,也会返回True
In [26]: issubclass(int,(int,float))Out[26]: True
38 iter(object, sentinel)
返回一个可迭代对象, sentinel可省略
39 len(s)
返回对象的长度(元素个数)
In [83]: dic = {\'a\':1,\'b\':3}In [84]: len(dic)Out[84]: 2
40 list([iterable])
返回可变序列类型
In [85]: list(map(lambda x: x%2==1, [1,3,2,4,1]))Out[85]: [True, True, False, False, True]
41 map(function, iterable, …)
返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器:
In [85]: list(map(lambda x: x%2==1, [1,3,2,4,1]))Out[85]: [True, True, False, False, True]
可以传入多个iterable对象,输出长度等于最短序列的长度:
In [88]: list(map(lambda x,y: x%2==1 and y%2==0, [1,3,2,4,1],[3,2,1,2]))Out[88]: [False, True, False, False]
42 max(iterable,*[, key, default])
返回最大值:
In [99]: max(3,1,4,2,1)Out[99]: 4In [100]: max((),default=0)Out[100]: 0In [89]: di = {\'a\':3,\'b1\':1,\'c\':4}In [90]: max(di)Out[90]: \'c\'In [102]: a = [{\'name\':\'xiaoming\',\'age\':18,\'gender\':\'male\'},{\'name\':\' ...: xiaohong\',\'age\':20,\'gender\':\'female\'}]In [104]: max(a,key=lambda x: x[\'age\'])Out[104]: {\'name\': \'xiaohong\', \'age\': 20, \'gender\': \'female\'}
43 min(iterable,*[, key, default])
返回最小值
44 memoryview(obj)
返回由给定实参创建的“内存视图”对象, Python 代码访问一个对象的内部数据,只要该对象支持 缓冲区协议 而无需进行拷贝
45 next(iterator,[, default])
返回可迭代对象的下一个元素
In [129]: it = iter([5,3,4,1])In [130]: next(it)Out[130]: 5In [131]: next(it)Out[131]: 3In [132]: next(it)Out[132]: 4In [133]: next(it)Out[133]: 1In [134]: next(it,0) #迭代到头,默认返回值为0Out[134]: 0In [135]: next(it)----------------------------------------------------------------------StopIteration Traceback (most recent call last)<ipython-input-135-bc1ab118995a> in <module>----> 1 next(it)StopIteration:
46 object()
返回一个没有特征的新对象。object 是所有类的基类。
In [137]: o = object()In [138]: type(o)Out[138]: object
47 open(file)
返回文件对象
In [146]: fo = open(\'D:/a.txt\',mode=\'r\', encoding=\'utf-8\')In [147]: fo.read()Out[147]: \'\\ufefflife is not so long,\nI use Python to play.\'
mode取值表:
48 pow(base, exp[, mod])
base为底的exp次幂,如果mod给出,取余
In [149]: pow(3, 2, 4)Out[149]: 1
49 print(objects)
打印对象,此函数不解释
50 class property(fget=None, fset=None, fdel=None, doc=None)
返回 property 属性,典型的用法:
class C: def __init__(self): self._x = None def getx(self): return self._x def setx(self, value): self._x = value def delx(self): del self._x # 使用property类创建 property 属性 x = property(getx, setx, delx, "I\'m the \'x\' property.")
使用python装饰器,实现与上完全一样的效果代码:
class C: def __init__(self): self._x = None @property def x(self): return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x
51 range(stop)
range(start, stop[,step])
生成一个不可变序列:
In [153]: range(11)Out[153]: range(0, 11)In [154]: range(0,11,1)Out[154]: range(0, 11)
52 reversed(seq)
返回一个反向的 iterator:
In [155]: rev = reversed([1,4,2,3,1])In [156]: for i in rev: ...: print(i) ...:13241
53 round(number[, ndigits])
四舍五入,ndigits代表小数点后保留几位:
In [157]: round(10.0222222, 3)Out[157]: 10.022
54 class set([iterable])
返回一个set对象,可实现去重:
In [159]: a = [1,4,2,3,1]In [160]: set(a)Out[160]: {1, 2, 3, 4}
55 class slice(stop)
返回一个表示由 range(start, stop, step) 所指定索引集的 slice对象
In [170]: a = [1,4,2,3,1]In [171]: a[slice(0,5,2)] #等价于a[0:5:2]Out[171]: [1, 2, 1]
56 sorted(iterable, *, key=None, reverse=False)
排序:
In [174]: a = [1,4,2,3,1]In [175]: sorted(a,reverse=True)Out[175]: [4, 3, 2, 1, 1]In [178]: a = [{\'name\':\'xiaoming\',\'age\':18,\'gender\':\'male\'},{\'name\':\' ...: xiaohong\',\'age\':20,\'gender\':\'female\'}]In [180]: sorted(a,key=lambda x: x[\'age\'],reverse=False)Out[180]:[{\'name\': \'xiaoming\', \'age\': 18, \'gender\': \'male\'}, {\'name\': \'xiaohong\', \'age\': 20, \'gender\': \'female\'}]
57 @staticmethod
将方法转换为静态方法,不做解释
58 class str(object=\'\')
返回一个 str版本的 object,str 是内置字符串 class
59 sum(iterable, /, start=0)
求和:
In [181]: a = [1,4,2,3,1]In [182]: sum(a)Out[182]: 11In [185]: sum(a,10) #求和的初始值为10Out[185]: 21
60 super([type[, object-or-type]])
返回一个代理对象,它会将方法调用委托给 type 的父类或兄弟类
61 tuple([iterable])
虽然被称为函数,但 tuple 实际上是一个不可变的序列类型
62 class type(object)
class type(name, bases, dict)
传入一个参数时,返回 object 的类型:
In [186]: type(xiaoming)Out[186]: __main__.StudentIn [187]: type(tuple())Out[187]: tuple
63 zip(*iterables)
创建一个聚合了来自每个可迭代对象中的元素的迭代器:
In [188]: x = [3,2,1]In [189]: y = [4,5,6]In [190]: list(zip(y,x))Out[190]: [(4, 3), (5, 2), (6, 1)]In [191]: a = range(5)In [192]: b = list(\'abcde\')In [193]: bOut[193]: [\'a\', \'b\', \'c\', \'d\', \'e\']In [194]: [str(y) + str(x) for x,y in zip(a,b)]Out[194]: [\'a0\', \'b1\', \'c2\', \'d3\', \'e4\']
本期的Python学习教程就到这了,关于内置函数,伙伴们有要补充的欢迎留言。
更多的教程也会继续为大家更新!