进入python的世界_day15_python基础——内置函数、迭代器、异常捕获

一、一些重要内置函数、常见内置函数

1..zip()

​ 将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的zip对象,转成list即可查看,如果对应元素个数不一样,按水桶长短板效应返回短的,多余的直接不要

2.filter()

​ 是从列表(或其他序列类型)中筛选出满足条件的子列表

l1 = [1,2,3,4,5,6,7,8]
def check(i):return i % 2 == 0
a = list(filter(check, l1))
print(a)
>>>
[2, 4, 6, 8]

3..sorted()

​ sorted(可迭代对象, key = None # 排序规则, reverse=False # 默认升序)

4..abs() >>>绝对值

5..all() 、any() >>>类似and or 判断,所有数据布尔值为True才返回True

​ 所有数据有一个布尔值为True才返回True

6..callable() >>>判断名字是否可以加括号调用

7..chr() ord () >>>基于ASCII码表做数字与字母的转换

​ a~z 97~122

​ A~Z 65~90

8..dir() >>> 返回对象能调用的名字

9..divmod() >>> divmod(a, b) a除以b,返回c余d的一个元组

print(divmod(30, 4))
>>>
(7, 2)

10..eval() 、exec() >>> 函数用来执行一个字符串表达式,并返回表达式的值。

​ exec能力更强

x = 3
print(eval( '3 * x' ))
>>>
9

11..pow(a, b) >>>a的b次方

12..round() >>> 四舍五入,但是有点怪

13..sum() >>>求和

二、迭代器(iterator)

1.介绍

​ 迭代是指重复取值,每次都基于上一次的结果再进行下一次重复,必须要有关联,迭代器就是做这个事的工具。

2.为何要产生迭代器

​ 传统迭代取值,只能取带有索引的值,如列表、字符串、元组

​ 所以python提供了一种不依赖于索引的取值方式,统一的一种方式

3.可迭代对象

​ 内置有__iter__方法的都称之为可迭代对象 ,就是给你调用的

​ 有:字符串,列表,字典,元组,集合,文件对象

​ 无:整型、浮点型

4.用法(先当自己没学for循环)

​ 对可迭代对象用内置的iter方法,会将其转换成迭代器对象

​ 转了后就不依赖索引取值了

比如说字典:
dict1 = {'nike':18, 'jack':22, 'dacid': 30}
t = dict1.__iter__()
print(t.__next__())  >>>nike
print(t.__next__())  >>>jack
print(t.__next__())  >>>dacid
print(t.__next__())  >>>报错 # 迭代器没得值取了,异常
dict1 = {'nike':18, 'jack':22, 'dacid': 30}
t = dict1.__iter__()
while True:
    try:
        print(t.__next__())
    except StopIteration:
    	break
    # 拓展:把有可能run异常的代码缩进,然后捕捉异常后结束掉循环

5.注意

​ 在对一个迭代器对象取值取干净的情况下,再取取不到了,下干净了,需要再次迭代一下,就又可以继续取,返回的就是他自己,其实和没调一样

​ 可迭代对象 != 迭代器对象

​ 迭代器对象 一定= 可迭代对象

​ 既是可迭代对象又是迭代器对象的只有文件对象(打开的)

6.优缺点

​ 优点:

​ 只要对象是可迭代对象,都可以取值了

​ 更加省内存的占用

​ >>>比如说range()在python3 中就是被做成了可迭代对象,python2就是直接出列表(比较占内存)

​ 缺点:

​ 不能直接取到想要的位置的值,只能一个个的来取

三、for循环的工作原理

​ while循环可以称为条件循环,for循环可以称为迭代器循环

被输入的参数,统一被转成迭代器即在数据尾部加__next__
然后循环执行__next__取值,如果报错for循环会捕捉异常然后结束取值 

​ python为了节省内存,把可迭代对象打包成一个工厂(迭代器),要取值的时候再一个个给你

四、异常捕获

1.何为异常

​ 异常是程序发生错误的信号,程序一旦出错就会给出异常,程序的运行立即终止,pycharm中的波浪线其实也算是一种异常提醒

2.异常的捕获的三个特征

# 异常的追踪信息 ————定位异常位置 pycharm里点一下蓝色位置的行可以定位过去
# 异常的类型  
# 异常的内容 ——————错误的原因,是英文,一般看完就知道大致的解决方法

3.异常的种类

  • 语法错误 >>>比如说中文冒号啊,没缩进啊,需要立即修改
  • 逻辑错误 >>>一般是自己的想法、逻辑没按程序的规范写,出现了尽快修改

posted @ 2022-10-14 21:07  yiwufish  阅读(304)  评论(0)    收藏  举报