zoukankan      html  css  js  c++  java
  • day13 内置函数

    参考资料: https://www.processon.com/view/link/5b4ee15be4b0edb750de96ac

    内置函数:

    作⽤域相关:

    locals()     返回当前作用域中的名字

    globals()    返回全局作用域中的名字

    迭代器相关:   

    range()    ⽣成数据   

    next()   迭代器向下执⾏ ⼀次, 内部实际使用了__next__()⽅法返回迭代器的下一个项目   

    iter()     获取迭代器, 内部实际使用的是__iter__()方法来获取迭代器

    字符串类型代码的执行   

    eval()   执行字符串类型的代码. 并返回最终结果

    exec()       执行字符串类型的代码

    compile()   将字符串类型的代码变异. 代码对象能够通过exec语句句来执行或者eval()进行求 值

    有返回值的字符串形式的代码用eval(). 没有返回值的字符串形式的代码用exec(). 一般很少用 到compile()

    输入和输出相关:   

    input()    获取用户输入的内容   

    print()    打印输出 内存相关:   

    hash()    获取到对象的哈希值(int, str, bool, tuple)   

    id()        获取到对象的内存地址

    文件操作相关:   

    open()    用于口打开⼀一个文件, 创建一个文件句柄

    模块相关:   

    __import__()    用于动态加载类和函数

    帮助:    help()    函数用于查看函数或模块用途的详细说明

    调用相关:   

    callable()    用于检查一个对象是否是可调用的. 如果返回True, object有可能调用失败, 但 如果返回False. 那调用绝对不会成功

    查看内置属性:    

    dir()    查看对象的内置属性, 方法. 访问的是对象中的__dir__()⽅方法 基础数据类型相关:    

    数字相关:        

    bool()  将给定的数据转换成bool值. 如果不给值. 返回False       

    int()     将给定的数据转换成int值. 如果不给值, 返回0       

    float()  将给定的数据转换成float值. 也就是⼩小数       

    complex()  创建一个复数. 第一个参数为实部, 第二个参数为虚部. 或者第一个参数直接 用字符串来描述复数

    进制转换:       

    bin()    将给的参数转换成二进制       

    otc()    将给的参数转换成八进制       

    hex()    将给的参数转换成十六进制   

    数学运算:       

    abs()            返回绝对值       

    divmode()     返回商和余数       

    round()        四舍五入        

    pow(a, b)    求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余       

    sum()    求和       

    min()    求最小值       

    max()    求最大值

    和数据结构相关:   

    列列表和元组:       

    list()        将一个可迭代对象转换成列列表       

    tuple()    将一个可迭代对象转换成元组       

    reversed()    将一个序列列翻转, 返回翻转序列列的迭代器       

    slice()    列表的切片

    字符串相关:       

    str()            将数据转化成字符串       

    format()     与具体数据相关, 用于计算各种小数, 精算等

    bytes()  把字符串转化成bytes类型

    bytearray()    返回一个新字节数组. 这个数字里的元素是可变的, 并且每个元素的值得范 围是[0,256)

    memoryview()  查看bytes在内存中的情况

    ord()    输入字符找带字符编码的位置       

    chr()    输入位置数字找出对应的字符       

    ascii()  是ascii码中的返回该值 不是就返回u...

    repr()    返回一个对象的官方表示形式

    数据集合:       

    dict()    创建一个字典 

    set()     创建一个集合       

    frozenset()    创建一个冻结的集合. 冻结的集合不能进行添加和删除操作   

    其他相关:        

    len()    返回一个对象中的元素的个数       

    sorted()    对可迭代对象进行排序操作

    enumerate()    获取集合的枚举对象

    all()      可迭代对象中全部是True, 结果才是True       

    any()    可迭代对象中有一个是True, 结果就是True

    zip()    函数用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个个元组, 然 后返回由这些元组成的开了表. 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同.

    filter()     过滤     

    map()    会根据提供的函数对指定序列列做映射(lamda)

    ⼀. lamda匿名函数.

    lambda表示的是匿名函数. 不需要用def来声明, 一句话就可以声明出一个函数

    语法: 函数名 = lambda 参数: 返回值

    注意: 1. 函数的参数可以有多个. 多个参数之间用逗号隔开

    2. 匿名函数不管多复杂. 只能写一行, 且逻辑结束后直接返回数据

    3. 返回值和正常的函数一样, 可以是任意数据类型
    匿名函数并不是说一定没有名字. 这里前面的变量就是一个函数名. 说他是匿名原因是我们通 过__name__查看的时候是没有名字的. 统一都叫lambda. 在调用的时候没有什么特别之处. 像正常的函数调用即可

    ⼆. sorted()   

    排序函数.     

    语法: sorted(Iterable, key=None, reverse=False)       

    Iterable: 可迭代对象       

    key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函 数的参数. 根据函数运算的结果进行排序       

    reverse: 是否是倒叙. True: 倒叙, False: 正序

    三. filter()   

    筛选函数    语法: filter(function. Iterable)       

    function: 用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后 根据function返回的True或者False来判断是否保留此项数据     

    Iterable: 可迭代对象 

    四. map()    映射函数   

    语法: map(function, iterable) 可以对可迭代对象中的每一个元素进行映射. 分别取执行 function   

    计算列表中每个元素的平方 ,返回新列表 

    五. 递归    在函数中调用函数本身. 就是递归  

    在python中递归的深度最大到998 (经测试)

    递归的应用:     我们可以使用递归来遍历各种树形结构, 比如我们的文件夹系统. 可以使用递归来遍历该 文件夹中的所有文件

     1 import os 
     2 def read(filepath, n):    
     3     files = os.listdir(filepath)    # 获取到当前文件夹中的所有文件    
     4     for fi in files:    # 遍历文件夹中的文件, 这里获取的只是本层文件名                    
     5          fi_d = os.path.join(filepath,fi)  # 加入文件夹 获取到文件夹+文件       
     6          if os.path.isdir(fi_d): # 如果该路径下的文件是⽂文件夹           
     7              print("	"*n, fi)           
     8              read(fi_d, n+1)     # 继续进行相同的操作        
     9         else:            
    10         print("	"*n, fi)   # 递归出口. 最终在这里隐含着return
    11 #递归遍历⽬目录下所有文件
    12  read('../old/', 0)       

    六. 二分查找   

    二分查找. 每次能够排除掉一半的数据.  查找的效率非常高. 但是局限性比较大. 必须是有 序列才可以使⽤二分查找     要求: 查找的序列必须是有序列. 

  • 相关阅读:
    PCA手写版 Learner
    泛解析和伪静态实现二级域名(net技术)
    内存分配笔记(一)
    NVelocity的使用总结
    从discuz 里扒过来的一个通用序列化和反序列化类
    类中的执行顺序
    Nhibernate 工具 Nh profiler 使用方法
    UML中几种类间关系
    golf的23种设计模式
    net中的定时器
  • 原文地址:https://www.cnblogs.com/honghong7725/p/9985768.html
Copyright © 2011-2022 走看看