zoukankan      html  css  js  c++  java
  • 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个)

     

  • 相关阅读:
    设计模式
    常用数据结构及复杂度 array、LinkedList、List、Stack、Queue、Dictionary、SortedDictionary、HashSet、SortedSet
    在 ASP.NET MVC 项目中使用 WebForm、 HTML
    二分法 数据必须是排序好的
    location.href IE6 下不起作用的罪魁祸首
    leetcode 372. Super Pow
    turple list dict 互相转换
    Pandas之Dropna滤除缺失数据
    模型选择---KFold,StratifiedKFold k折交叉切分
    xgb, lgb, Keras, LR(二分类、多分类代码)
  • 原文地址:https://www.cnblogs.com/mashangsir/p/11330297.html
Copyright © 2011-2022 走看看