Python基础——内置函数

课前梗概

学到这里,大家是不是在想一个问题,我们之前一直用到的简单语法中会有,iut(),print(),len(),input()…………等等,你们是否想过,我们在使用之前没有做什么定义操作而是自然而然用到了,非常自然,这到底是什么情况?它们到底是什么东西呢?

其实,这些函数都是一个名为 builtins模块已经封装定义好的函数,而且这个模块在安装python环境的时候就默认导入了,所以我们可以直接使用。

这些函数,在python我们也称之为“内置函数”。

 

内置函数

在python的3.6.2版本以上的时候,python现在目前提供给我们68个内置函数。Python通过这68个内置函数,可以为我们提供了丰富、强大、高效、快速的解决方案,大多数时候,我们根本不需要导入第三方库,甚至标准库都不需要。

68个内置函数如下:

#68个内置函数
# abs()           dict()        help()         min()         setattr()
# all()           dir()         hex()          next()        slice() 
# any()           divmod()      id()           object()      sorted() 
# ascii()         enumerate()   input()        oct()         staticmethod() 
# bin()           eval()        int()          open()        str() 
# bool()          exec()        isinstance()   ord()         sum() 
# bytearray()     filter()       issubclass()   pow()         super() 
# bytes()         float()        iter()         print()       tuple() 
# callable()      format()      len()          property()    type() 
# chr()           frozenset()   list()         range()       vars() 
# classmethod()   getattr()     locals()       repr()        zip() 
# compile()       globals()     map()          reversed()    __import__() 
# complex()       hasattr()     max()          round() 
# delattr()       hash()        memoryview()   set()

 

为了更好的记忆和学习,我们将这68个内置函数进行归纳分组!!!你们觉得呢?~_~

我们暂且把68个内容函数分为六大类

 

 

下面按星级来划分重要性!!!!!最高级别*****五颗星!!!!!

 

作用域相关(2个)

 locals():获取某个执行方法所在命名空间的局部变量的字典,列出当前可以用的局部变量。

例如:
>>> locals() {'__name__': '__main__', '__doc__': None, '__package__': None,

'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'__spec__': None, '__annotations__': {},
'__builtins__': <module 'builtins' (built-in)>}

 

globals():列出当前环境中所有的全局变量的字典。注意:与global的区别!!!!!

例如:
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, 
'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'__spec__': None, '__annotations__': {},
'__builtins__': <module 'builtins' (built-in)>}

看到locals()和globals()运行的结果是一样的,这是为什么呢?

这主要是因为,我当前的cmd进入到的python环境一样,命名空间也是一样的结果。

 其他(12个)

这里的其他分成八个类型:

  字符串类型代码:eval(),exec(),compile() 

    eval():将类似计算公式的字符串,解读成为计算方式,并直接执行。例如:

      sum="6+8",从"6+8"中可以看出是(sum)一个字符串,但是,经过e1 = eval(sum)之后,e1的结果就是14。

    exec():exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。exec 返回值永远为 None。

    compile():将字符串编译成Python能识别或执行的代码。 也可以将文件读成字符串再编译。compile() 函数将一个字符串编译为字节代码。

 

 迭代器/生成器相关(3个)

range() 

range函数经常使用在for等循环语句当中,所以不过多解释:

 1 # range()函数内只有一个参数,则表示会产生从0开始计数的整数列表:
 2 for i in range(4):
 3     print(i)
 4 
 5 result:
 6         0
 7         1
 8         2
 9         3
10 # python range中,当传入两个参数时,则将第一个参数做为起始位,第二个参数为结束位:
11 for i in range(1,4):
12     print(i)
13 result:
14         1
15         2
16         3
17 
18 # range()函数内可以填入三个参数,第三个参数是步进值(步进值默认为1):
19 for i in range(0,10,3):
20     print(i)
21 result:
22         0
23         3
24         6
25         9
26 
27 # range函数的参数和结果也并非一定要是正数或是递增的,好比下面两个例子:
28 for i in range(-2,2):
29     print(i)
30 result:
31         -2
32         -1
33         0
34         1
35 >>> range(4,-4,-1)
36 for i in range(2,-2,-1):
37     print(i)
38 result:
39         2
40         1
41         0
42         -1
部分range函数使用方法

next()

语法:
next(iterator[,default])
参数
iterator − 要读取行的文件对象,可以看到这里必须问可迭代对象!
default − 如果迭代器耗尽(或者迭代对象没有值了)则返回此默认值。 如果没有给出此默认值,则抛出 StopIteration 异常
l = [1, 2]
i = iter(l)
print(next(i,'g'))
print(next(i,'g'))
print(next(i,'g'))

result:
1
2
g

 

iter()

通过iter制造一个迭代器,使其具备next()能力。例如:

lis = [1, 2, 3]
next(lis)

result:
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    next(lis)
TypeError: 'list' object is not an iterator

使用iter后:
i = iter(lis)
print(i)
<list_iterator object at 0x0000000002B4A128>
print(next(i))
1    
可以看到用用iter函数后,lis就变成一个迭代器了!!!!!!

 

面向对象相关(9个)

 

反射相关(4个)

 

基础数据类型相关(38个)

基础数据类型相关——上部(和数字相关14个)

 

 

 

基础数据类型相关——下部(和数字结构相关20个)

 

 

posted @ 2019-08-10 01:04  码上先生  阅读(364)  评论(0编辑  收藏  举报