python基础学习15 常见内置函数与迭代

157 阅读4分钟

常见内置函数

  • 共有68种,需要了解
    • 必须知道的:
    ##   1.与数据类型转换相关:
    
    **1.int()    转换为十进制整数       **2.bool()    转换为布尔值       **3.dict()    转换为字典    
    **4.list()   转换为列表            **5.float()   转换为浮点型       **6.tuple()   转换为元组  
    **7.str()    转换为字符串          **8.set()     转换为集合         **9.bytes()   转换为字节
    **10.bin()   转换为2进制           **11.oct()    转换为8进制        **12.hex()    转换为16进制
    **13.range()  生成一个整数序列  
      
    *14.object() 生成一个object对象   *15.ord()    返回unicode字符对应整数   *16.chr()    ASCII码实现字符转换   
    *17.slice()  生成一个切片对象     *18.iter()   生成一个可迭代对象         *19.enumerate()  枚举             
    *20.complex()生成一个新的复数     *21.super()  生成子类父类关系的代理对象 
     
     22.memoryview()  生成一个新的内存查看对象             22.frozenset()  生成不可变集        
    
    ##    2.运算相关的:
    **1.max() 求最大值      **2.min() 求最小值      **3.sum() 求和     
    * 4.abs() 求绝对值      * 5.divmod 求商和余数   * 6.pow() 幂运算       
    * 7.round() 四舍五入
    
    变量操作:
    **1.globals()         返回当前作用域内的全局变量和其值组成的字典
    **2.locals()	         返回当前作用域内的局部变量和其值组成的字典
    交互操作:
    **1.print()           打印       
    **2.input()           输入
    文件操作:
    **1.open()            指定编码打开文件
    
    ##    3.其他较重要函数
    **1.help()          返回对象帮助信息      
    **2.id()            返回对象的唯一标识符 
    **3.len()           返回对象的长度        
    **4.type()          返回对象的类型,或者根据传入的参数创建一个新的类型  
    **5._import_()      动态导入模块          
    **6.format()        格式化显示值
    **7.var()           返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列 
    **8.filter          过滤                 
    **9.map()           映射
    **11.next           返回可迭代对象元素值   
    **12.zip()          拉链 
    * 12.all/any()      判断容器类型中的所有数据值对应的布尔值是否为True 
    * 13.reversed()     反转序列生成新的可迭代对象 
    * 14.dir()          返回对象或者当前作用域内的属性列表 
    * 15.hash()         获取对象哈希值        
    * 16.ascii()        返回对象的可打印表字符串表现方式
    * 17.isinstance()   判断对象是否是类或者元祖中任意类元素的实例
    * 18.issubclass()   判断类是否是另一个类或者类型元组中任意类元素的子类 
    * 19.hasattr()      检查对象是否含有属性  
    * 20.getsttr()      获取对象的属性值 
    * 21.setattr()      设置对象的属性值 
    * 22.delattr()      删除对象的属性 
    * 23.callable()     检查对象是否可被调用
    * 24.compile()      将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值
    * 25.eval()         执行动态表达式求值 *exec()执行动态语句块 
    * 26.repr()         返回一个对象的支付穿表现形式
    * 27.property()     标示属性的装饰器
    * 28.classmethod()  标示方法为类方法的装饰器
    * 29.staticmethod() 标示方法为静态方法的装饰器
    

可迭代对象

迭代的理解

  • 基于上一次结果更新换代有所改变就可以理解为迭代

判断可迭代对象

  • 内置(可以通过句点符)含有__iter__方法的都叫做可迭代对象 __XXX__读作双下XXX
  • 可迭代对象:
    • 字符串
    • 列表
    • 元组
    • 字典
    • 集合
    • 文件对象
可迭代对象都支持for循环取值
  • 非可迭代对象:
    • 整型
    • 浮点型
    • 布尔值
    • 函数名

迭代器对象

可迭代对象与迭代器对象的关系

  • 调用__iter__方法可迭代对象会变为迭代器对象,但是迭代器对象还是其自身

判断迭代器对象

  • 内置含有__iter__和__next__ 方法的才能称为迭代器对象

迭代取值

迭代取值详解

  • 取一个字符串
    • 后第四行代码由于值被取完,后面没有值所以会报错 image.png
  • 取一个字典
    • 每次迭代取的值是k,后面没有值也会报错 image.png
  • 当我们需要依次打印出一个列表的值是除了使用for循环还可以使用迭代器加while循环。
    • 不用重复繁琐的添加打印,直接往列表就可以打印数据 image.png
  • 补充说明
    • 1.当迭代器重复使用时输出的值取决于可迭代对象是谁
    • 2.双下可以简写(但是不推荐简写)
    res = l.__iter__()  # 可以简写iter(l)
    res.__next__()      # 可以简写next(res1)
    
    • 3.可迭代对象与迭代器对象通过打印操作都无法直接看出内部数据的情况。在需要是才会打印需要的值
  • for循环本质补充
语法结构
	for 变量名 in 可迭代对象:
        for循环体代码
1.for会自动将in后面的数据调用__iter__()变成迭代器对象
2.之后每次循环调用__next__()取值
3.最后没有值__next__()会报错 for能够自动处理该错误 让循环正常结束