内置函数,可迭代对象

一、重要内置函数

1.zip()

将对不同列表中对应的元素打包成一个个元组,然后返回由这些元组组成的对象.

 用list()转换后打印出结果,可以看到输出结果为一个列表,列表中的每个元素均为一个元组:

 

 如果列表中元素的数量不一致,则多出的元素不会被打包

 

 

2. filter()

用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

 

 3. sorted()

对列表、字典中的对象进行排序,默认升序

 

二、常见内置函数

1. abs() 

    绝对值

 

2. all()

    所有数据值对应的布尔值为True结果才是True,否则返回False

 

3. any() 

所有数据值对应的布尔值有一个为True结果就是True,否则返回False

 

4. 进制数转换 

 bin()二进制

    oct()八进制

    hex()十六进制

    int() 十进制

 

5. bytes() 

转换成bytes类型

 

6. callable()

判断对象能否使用()括号的方式调用,若对象可以被调用则返回True,反之则返回False。

 

7. 数字与之母的转换 

 chr()  基于ASCII码表做数字与字母的转换,数字转换为字母

   ord()  基于ASCII码表做数字与字母的转换,字母转换为数字

 

8. dir() 

    返回括号内对象能够调用的名字

 

9. divmod() 

    返回由它们的商和余数组成的一对数字(元组)。

 

10. enumerate()   

   枚举,将一个可遍历的数据对象遍历出来,并自动添加索引

 运行结果:

 

11. eval();exec() 

  可以把字符串 str 当作有效的表达式来求值并且返回运算结果。

注:str 只能是单个运算表达式,不可以进行赋值或其他复杂的代码逻辑。

 

 

exec() 可以识别具有一定逻辑性的python代码:

 

12. hash()  哈希加密

 

13. id()   输出对象id

      input()   输入

      isinstance()   判断一个对象是否是一个已知的类型

 

14.map();max();min()

 

15.open()打开文件

 

16.pow() 幂指数(次方)

 

 

17. range()

18. round() 四舍五入

当保留位跟着的即使是5,有可能进位,也有可能舍去,机会各50%

19. sum() 求和

 

三、迭代器

可迭代对象

 

 

1.可迭代对象(iterable)

在Python世界里,一切皆对象。对象根据定义的维度,又可以分为各种不同的类型,比如:文件对象,字符串对象,列表对象等等。

   

对象内置有__iter__方法的都称为可迭代对象

(1)内置方法:通过点的方式能够调用的方法
(2)__iter__ “双下iter方法”  

2.可迭代对象的范围

    不是可迭代对象:       

    int,float,bool 函数对象


    是可迭代对象:
    str,list,dict,tuple,set 文件对象

3.可迭代的含义

 迭代:更新换代(每次更新都必须依赖上一次的结果)     eg:手机app更新
 
 可迭代在python中可以理解为是否支持for循环

 

迭代器对象(iterator

1.迭代器对象

    是由可迭代对象调用__iter__方法产生的

    迭代器对象判断的本质是看是否内置有__iter__和__next__

2.迭代器对象的作用

    提供了一种不依赖于索引取值的方式

    正因为有迭代器的存在,我们的字典、集合才能够被for循环

3.迭代器对象实操

s1 = 'hello'  # 可迭代对象

res = s1.__iter__()  # 迭代器对象

print(res.__next__())  # h
print(res.__next__())  # e
print(res.__next__())  # l
print(res.__next__())  # l
print(res.__next__())  # o
print(res.__next__())  # 报错

注:一旦__next__取不到值,会直接报错

 

注意事项

    可迭代对象调用__iter__会成为迭代器对象,迭代器对象如果还调用__iter__不会有任何变化,还是迭代器对象本身,表示自身即是自己的迭代器,自己完成对自己的迭代。

    迭代器不会一次性把所有元素加载到内存,而是需要的时候才生成返回结果。

    迭代器实现了__next__方法,所以可以直接通过next()函数来返回下一个元素。

四、for循环的本质

for 变量名 in 可迭代对象:
    循环体代码
 
1.先将in后面的数据调用__iter__转变成迭代器对象

2.依次让迭代器对象调用__next__取值

3.一旦__next__取不到值报错,for循环会自动捕获并处理

for循环迭代的流程:

 

   注:next()方法内部调用了对象的__next__()方法,iter()方法内部调用了对象的__iter__()方法。

 

五、异常捕获/处理

1. 异常

    异常就是代码运行报错,行业俗语叫bug
    代码运行中一旦遇到异常会直接结束整个程序的运行,我们在编写代码的过程中要尽可能避免

2.异常分类

语法错误:

    不允许出现,一旦出现立刻改正,否则提桶跑路

逻辑错误:

    允许出现的,因为它一眼发现不了,代码运行之后才可能会出现

3.异常结构

    错误位置

    错误类型

    错误详情

 如果有多行错误,看最后一行就行。

 

posted @ 2022-10-16 22:26  莫~慌  阅读(219)  评论(0编辑  收藏  举报