2. 内建函数

2.1. 常用内置函数

2.1.1. abs(x)

功能:就绝对值

样例:

In [1]: abs(-1)
Out[1]: 1

2.1.2. all(iterable)

功能:返回true,如果所有元素都是true。

样例:

In [2]: a=[1,2,3,4]

In [3]: a
Out[3]: [1, 2, 3, 4]

In [4]: all(a)
Out[4]: True

In [5]: a.append(None)

In [6]: a
Out[6]: [1, 2, 3, 4, None]

In [7]: all(a)
Out[7]: False

2.1.3. any(iterable)

功能:返回true,只要任何一个元素为true。

样例:

In [8]: a=[a,None,""]

In [9]: any(a)
Out[9]: True

In [10]: a=[None,""]

In [11]: any(a)
Out[11]: False

2.1.4. bool(x)

功能:返回值是不是true

样例:

In [15]: bool(a)
Out[15]: False

In [16]: a=[""]

In [17]: bool(a)
Out[17]: True

2.1.5. callable(object)

功能:判断对象是不是可调用

样例:

In [21]: callable("a".upper)
Out[21]: True

2.1.6. chr(i)

功能:数值转ascii

样例:

In [26]: chr(97)
Out[26]: 'a'

In [27]: chr(98)
Out[27]: 'b'

与这个函数相对的就是ord了,从字符转数值。

2.1.7. classmethod

功能: 转化方法成类方法

样例:

class C:
    @classmethod
    def f(cls,arg1,arg2):
        pass
# 调用方式
C.f()
C().f()

2.1.8. delattr(object,name)

功能:删除对象的属性

样例:

In [30]: class People:
    ...:     pass
    ...:

In [31]: p=People()

In [32]: p.name="zhaojiedi"

In [33]: p.age="20"

In [34]: p.age
Out[34]: '20'

In [35]: delattr(p,"age")

In [35]: p.age
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-40-ebe3f80b9437> in <module>()
----> 1 p.age

AttributeError: 'People' object has no attribute 'age'

删除了属性后再去访问这个属性,就会触发属性错误异常。

2.1.9. dict(**kwarg)

功能:转化为一个字典

样例:

In [42]: p =dict (name="zhaojiedi",age=26)

In [43]: p
Out[43]: {'age': 26, 'name': 'zhaojiedi'}

2.1.10. dir(x)

功能:如果没有参数,返回本地作用域的名称列表,如果有参数,返回有效属性列表

样例:

In [46]: dir(string)
Out[46]:
['Formatter',
'Template',
'_ChainMap',
'_TemplateMetaclass',
'__all__',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'_re',
'_string',
'ascii_letters',
'ascii_lowercase',
'ascii_uppercase',
'capwords',
'digits',
'hexdigits',
'octdigits',
'printable',
'punctuation',
'whitespace']

2.1.11. enumerate(iterable, start=0)

功能:返回一个枚举对象

样例:

In [49]: seasons=['spring','summer','fall','winter']

In [50]: list(seasons)
Out[50]: ['spring', 'summer', 'fall', 'winter']

In [51]: list(enumerate(seasons))
Out[51]: [(0, 'spring'), (1, 'summer'), (2, 'fall'), (3, 'winter')]

In [52]: list(enumerate(seasons,start=2))
Out[52]: [(2, 'spring'), (3, 'summer'), (4, 'fall'), (5, 'winter')]

2.1.12. eval(expression, globals=None, locals=None)

功能:用于计算表达式

样例:

In [53]: x=1

In [54]: eval('x+1')
Out[54]: 2

2.1.13. float(x)

功能:

样例:

In [57]: float('-00.1')
Out[57]: -0.1

In [58]: float('1e6')
Out[58]: 1000000.0

2.1.14. getattr(object, name[, default])

功能:读取属性值

样例:

In [59]: class p2:
    ...:     pass
    ...:

In [60]: p=p2()

In [61]: p.name="zhaojiedi"

In [62]: getattr(p,"name")
Out[62]: 'zhaojiedi'

In [63]: getattr(p,"age",26)
Out[63]: 26

不提供默认值去访问一个不存在的属性,会抛出属性错误的。

2.1.15. hasattr(object, name)

功能:判断是否有特定属性

样例:

In [65]: p=p2()

In [66]: hasattr(p,"name")
Out[66]: False

In [67]: p.name="zhaojiedi"

In [68]: hasattr(p,"name")
Out[68]: True

2.1.16. hex(x)

功能:转化一个整数为16进制

样例:

In [69]: hex(11)
Out[69]: '0xb'

In [70]: hex(10)
Out[70]: '0xa'

In [71]: hex(9)
Out[71]: '0x9'

这是转16进制的,当然还有oct转8进制的。

2.1.17. input(prompt)

功能:接受输入参数,将输入赋值给变量

样例:

In [73]: s=input("please input a string:")
please input a string:zhaojiedi

In [74]: s
Out[74]: 'zhaojiedi'

2.1.18. isinstance(object,classinfo)

功能:判断对象是不是特定类

样例:

In [79]: isinstance("a",str)
Out[79]: True

In [80]: isinstance("a",list)
Out[80]: False

In [82]: isinstance("a",(list,str))
Out[82]: True

2.1.19. issubclass(class, classinfo)

功能:是否是子类的

样例:

In [90]: class p5():
    ...:     pass
    ...:

In [91]: class p6(p5):
    ...:     pass
    ...:

In [92]: issubclass(p6,p5)
Out[92]: True

2.1.20. iter(object[, sentinel])

功能:返回一个迭代对象

样例:

In [96]: with open('test.txt') as fp:
    ...:     for line in iter(fp.readline,''):
    ...:         print(line)

2.1.21. len(x)

功能:获取长度

样例:

In [97]: len("abc")
Out[97]: 3

In [98]: len([1,2,3,4])
Out[98]: 4

2.1.22. open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

功能:打开文件

模式

字符

描述

r

读取,这是默认值

w

写文件

x

打开去执行创建

a

追加

b

二进制模式

t

文本模式,默认值

+

读写模式

样例:

In [101]: with open('a.txt','w') as f:
    ...:     f.write("this is a test")

2.1.23. powpow(x, y[, z])

功能: 字符计算的,如果有z值指定,就是x的y次方对z求余数。

样例:

In [102]: pow(2,3)
Out[102]: 8

In [103]: pow(3,2)
Out[103]: 9

In [104]: pow(3,2,5)
Out[104]: 4

2.1.24. range(start,stop,step)

功能:生成一组连续的数值

样例:

In [106]: list(range(3))
Out[106]: [0, 1, 2]

In [107]: list(range(2,4))
Out[107]: [2, 3]

In [108]: list(range(2,10,3))
Out[108]: [2, 5, 8]

2.1.25. repr(object)

功能:得到对象的打印信息

样例:

In [113]: class p8():
    ...:     def __repr__(self):
    ...:         return " this is a test"
    ...:

In [114]: p=p8()

In [115]: p
Out[115]:  this is a test

In [116]: repr(p)
Out[116]: ' this is a test'

2.1.26. reversed(seq)

功能:反转一个对象

样例:

In [117]: a=[1,2,3]

In [118]: reversed(a)
Out[118]: <list_reverseiterator at 0x2480c111320>

In [119]: list(reversed(a))
Out[119]: [3, 2, 1]

2.1.27. round(number[, ndigits])

功能:四舍五入功能

样例:

In [121]: round(101,-1)
Out[121]: 100

In [122]: round(101.667,2)
Out[122]: 101.67

In [123]: round(101.667,1)
Out[123]: 101.7

2.1.28. setattr(object,name,value)

功能:用于设置对象的特定属性为value值。

样例:

In [125]: p=p9()

In [126]: p
Out[126]: <__main__.p9 at 0x2480c1c40f0>

In [127]: p.name
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-127-1c57ed665d7c> in <module>()
----> 1 p.name

AttributeError: 'p9' object has no attribute 'name'

In [128]: setattr(p,"name","zhaojiedi")

In [129]: p.name
Out[129]: 'zhaojiedi'

2.1.29. class slice(start, stop[, step])

功能:分片功能,用于提取迭代对象的一部分

样例:

In [130]: a=[1,2,3,4]

In [131]: slice(a,1)
Out[131]: slice([1, 2, 3, 4], 1, None)

In [132]: a[1]
Out[132]: 2

In [133]: a[1:]
Out[133]: [2, 3, 4]

In [134]: a[1:2]
Out[134]: [2]

2.1.30. sorted(iterable, *, key=None, reverse=False)

功能: 排序功能

样例:

In [137]: a=["aAbc","bC","Bc"]

In [138]: sorted(a,key=str.upper)
Out[138]: ['aAbc', 'bC', 'Bc']

2.1.31. @staticmethod

功能:转化一个方法为静态方法

样例:

class C:
    @staticmethod
    def f(arg1,arg2):
        pass

2.1.32. sum(iterable[, start])

功能:求和

样例:

In [139]: a=[1,2,3,4]

In [140]: sum(a)
Out[140]: 10

In [141]: sum(a,1)
Out[141]: 11

In [142]: sum(a,100)
Out[142]: 110

2.1.33. super([type[, object-or-type]])

功能:返回一个将方法调用委托给父类或兄弟类的代理对象。 这对访问在类中被覆盖的继承方法很有用

样例:

class C(B):
    def method(self, arg):
        super().method(arg)

2.1.34. tuple(iterable)

功能:转化为元组

样例:

In [143]: a=[1,2,3,4]

In [144]: tuple(a)
Out[144]: (1, 2, 3, 4)

2.1.35. type(object)

功能:获取对象的类型

样例:

In [145]: type("aaa")
Out[145]: str

In [146]: type([1,2,3])
Out[146]: list

2.1.36. zip(*iterables)

功能:获取对象的类型

样例:

In [148]: a=[1,2,3,4]

In [149]: b=["a","b","c","d"]

In [150]: c=zip(a,b)

In [151]: list(c)
Out[151]: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]