转自:

内置函数简介

内置函数(BIF,built-in functions)是Python内置对象类型之一,不需要额外导入任何模块即可直接使用,这些内置对象都封装在内置模块builtins之中,用C语言实现并且进行了大量优化,具有非常快的运行速度,推荐优先使用。

内置函数用法

一. 数学运算(7个)

1.abs( ) 获取绝对值

函数

返回结果

abs(-2)

2

abs(0)

0

2.divmod:返回两个数值的商和余数

函数

返回结果

divmod(10,3)

(3,1)

divmod(5.5,2)

(2.0,1.5)

divmod(5,-2)

(-3,1)

3. max:返回可迭代对象中的元素中的最大值或者所有参数的最大值

函数

返回结果

max(-1,0)

0

max(‘1234’)

‘4’

max(-1,-2,key = abs)

-2

4. min:返回可迭代对象中的元素中的最小值或者所有参数的最小值

函数

返回结果

min(-1,0)

-1

min(‘1234’)

‘1’

min(-1,-2,key = abs)

-1

5. pow:返回两个数值的幂运算值或其与指定整数的模值

函数

返回结果

pow(2,3)

8

pow(2,3,5)

3(即2 ** 3 % 5)

6. round:对浮点数进行四舍五入求值

函数

返回结果

round(1.1314926,5)

1.13149

round(123.45,-2)

100.0(即在十位四舍五入)

7. sum:对元素类型是数值的可迭代对象中的每个元素求和

函数

返回结果

sum((1,2,3,4),-10))

0(可迭代,但元素必须是数值型)

二、类型转换(24个)

1.bool:根据传入的参数的逻辑值创建一个新的布尔值

函数

返回结果

bool()

False

bool(0)

False

bool(1)

True(参数不为数值0和空序列,值为真)

bool(2)

True

2.int:根据传入的参数创建一个新的整数

函数

返回结果

int()

0

int(3)

3

int(3.6)

3

3.float:根据传入的参数创建一个新的浮点数

函数

返回结果

float()

0.0

float(3)

3.0

float(‘3’)

3.0

4.complex:根据传入参数创建一个新的复数

函数

返回结果

complex()

0j

complex(‘1+2j’)

(1+2j)

complex(1,2)

(1+2j)

5.str:返回一个对象的字符串表现形式(给用户)

示例:str(None) ‘None’

6.bytearray:根据传入的参数创建一个新的字节数组

示例:bytearray('中文','utf-8') bytearray(b’\xe4\xb8\xad\xe6\x96\x87’)

7.bytes:根据传入的参数创建一个新的不可变字节数组

示例:bytes('中文','utf-8') b’\xe4\xb8\xad\xe6\x96\x87’

8.memoryview:根据传入的参数创建一个新的内存查看对象

示例:v = memoryview(b'abcefg')'v[1] 98
v[-1] 103

9.ord:返回Unicode字符对应的整数

示例:ord('a') 97

10.chr:返回整数所对应的Unicode字符

示例:chr(97) ‘a’

11.bin:将整数转换成2进制字符串

示例:bin(3) ‘0b11’

12.oct:将整数转化成8进制数字符串

示例:oct(10) ‘0o12’

13.hex:将整数转换成16进制字符串

示例:hex(15) ‘0xf’

14.tuple:根据传入的参数创建一个新的元组

示例:tuple('121') (‘1’, ‘2’, ‘1’)

15.list:根据传入的参数创建一个新的列表

示例:list('abcd') [‘a’, ‘b’, ‘c’, ‘d’]

16.dict:根据传入的参数创建一个新的字典

示例:dict(a = 1,b = 2) {‘b’: 2, ‘a’: 1}

17.set:根据传入的参数创建一个新的集合

示例:set(range(10)) {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

18.frozenset:根据传入的参数创建一个新的不可变集合

示例:frozenset(range(10)) frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})

19.enumerate:根据可迭代对象创建枚举对象

示例:seasons = ['Spring', 'Summer', 'Fall', 'Winter']list(enumerate(seasons)) [(0, ‘Spring’), (1, ‘Summer’), (2, ‘Fall’), (3, ‘Winter’)]
list(enumerate(seasons, start=1))#指定起始值
[(1, ‘Spring’), (2, ‘Summer’), (3, ‘Fall’), (4, ‘Winter’)]

20.range:根据传入的参数创建一个新的range对象

a = range(10)b = range(1,10)c = range(1,10,3)a,b,c (range(0, 10), range(1, 10), range(1, 10, 3))
list(a),list(b),list(c) ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 4, 7])

21.iter:根据传入的参数创建一个新的可迭代对象

a = iter('abcd') a
<str_iterator object at 0x03FB4FB0>
next(a) ‘a’
next(a) ‘b’
next(a) ‘c’
next(a) ‘d’
next(a) Traceback (most recent call last):
File “<pyshell#29>”, line 1, in
next(a)
StopIteration

22.slice:根据传入的参数创建一个新的切片对象

slice(5) slice(None, 5, None)
slice(2,5) slice(2, 5, None)
slice(1,10,3) slice(1, 10, 3)

23.super:根据传入的参数创建一个新的子类和父类关系的代理对象

定义父类A
class A(object):def __init__(self):print('A.__init__')

定义子类B,继承A
class B(A):def __init__(self):print('B.__init__')super().__init__()

super调用父类方法
b = B() B.init
A.init

24.object:创建一个新的object对象

a = object()a.name = 'kim' Traceback (most recent call last):
File “<pyshell#9>”, line 1, in
a.name = ‘kim’
AttributeError: ‘object’ object has no attribute ‘name’

三、序列操作(8个)

1.all:判断可迭代对象的每个元素是否都为True值
2.any:判断可迭代对象的元素是否有为True值的元素
3.filter:使用指定方法过滤可迭代对象的元素
4.map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象
5.next:返回可迭代对象中的下一个元素值
6.reversed:反转序列生成新的可迭代对象
7.sorted:对可迭代对象进行排序,返回一个新的列表
8.zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器

四、对象操作(7个)

1.help:返回对象的帮助信息
2.dir:返回对象或者当前作用域内的属性列表
3.id:返回对象的唯一标识符
4.hash:获取对象的哈希值
5.type:返回对象的类型,或者根据传入的参数创建一个新的类型
6.len:返回对象的长度
7.ascii:返回对象的可打印表字符串表现方式
8.format:格式化显示值
9.vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表

五、反射操作(8个)

1.import:动态导入模块
2.isinstance:判断对象是否是类或者类型元组中任意类元素的实例
3.issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类
4.hasattr:检查对象是否含有属性
5.getattr:获取对象的属性值
6.setattr:设置对象的属性值
7.delattr:删除对象的属性
8.callable:检测对象是否可被调用

六、变量操作(2个)

1.globals:返回当前作用域内的全局变量和其值组成的字典
2.locals:返回当前作用域内的局部变量和其值组成的字典

七、交互操作(2个)

1.print:向标准输出对象打印输出

函数

返回结果

print(1,2,3)

1 2 3

print(1,2,3,sep = ‘+’)

1+2+3

print(1,2,3,sep = ‘+’,end = ‘=?’)

1+2+3=?

2.input:读取用户输入值

s = input('please input your name:') please input your name:Ain
s ‘Ain’

八、文件操作(1个)

1.open:使用指定的模式和编码打开文件,返回文件读写对象

#t为文本读写,b为二进制读写
a = open('test.txt','rt')a.read() ‘some text’
a.close()

九、编译执行(4个)

1.compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值

code1 = 'for i in range(0,10): print (i)'compile1 = compile(code1,'','exec')exec (compile1) 0
1
2
3
4
5
6
7
8
9

2.eval:执行动态表达式求值

示例:eval('1+2+3+4') 10

3.exec:执行动态语句块

示例:exec('1+2') 3

4.repr:返回一个对象的字符串表现形式(给解释器)

a = 'some text'str(a) ‘some text’
repr(a) “‘some text’”

十、装饰器(3个)

1.property:标示属性的装饰器
>>> class C:
    def __init__(self):
        self._name = ''
    @property
    def name(self):
        """i'm the 'name' property."""
        return self._name
    @name.setter
    def name(self,value):
        if value is None:
            raise RuntimeError('name can not be None')
        else:
            self._name = value

            
>>> c = C()

>>> c.name # 访问属性
''
>>> c.name = None # 设置属性时进行验证
Traceback (most recent call last):
  File "<pyshell#84>", line 1, in <module>
    c.name = None
  File "<pyshell#81>", line 11, in name
    raise RuntimeError('name can not be None')
RuntimeError: name can not be None

>>> c.name = 'Kim' # 设置属性
>>> c.name # 访问属性
'Kim'

>>> del c.name # 删除属性,不提供deleter则不能删除
Traceback (most recent call last):
  File "<pyshell#87>", line 1, in <module>
    del c.name
AttributeError: can't delete attribute
>>> c.name
'Kim'
2.classmethod:标示方法为类方法的装饰器
>>> class C:
    @classmethod
    def f(cls,arg1):
        print(cls)
        print(arg1)

        
>>> C.f('类对象调用类方法')
<class '__main__.C'>
类对象调用类方法

>>> c = C()
>>> c.f('类实例对象调用类方法')
<class '__main__.C'>
类实例对象调用类方法
3.staticmethod:标示方法为静态方法的装饰器
# 使用装饰器定义静态方法
>>> class Student(object):
    def __init__(self,name):
        self.name = name
    @staticmethod
    def sayHello(lang):
        print(lang)
        if lang == 'en':
            print('Welcome!')
        else:
            print('你好!')

            
>>> Student.sayHello('en') #类调用,'en'传给了lang参数
en
Welcome!

>>> b = Student('Kim')
>>> b.sayHello('zh')  #类实例对象调用,'zh'传给了lang参数
zh
你好