搜索

16


发布时间: 2022-11-24 18:45:07    浏览次数:69 次

今日内容总结

1.异常常见的类型

#syntaxerror
	语法错误
#Nameerror
	变量名没有赋值就直接使用
#Indexerror
	索引值超出了范围
#keyerror
	字典中不存在该键
#Indentionerror
	缩进的问题

2.异常处理的语法结构

1.基本语法结构
    try:
        待检测的代码
    except 错误类型:
        针对错误类型解决问题的方式
2.查看错误的类型
	try:
        待检测的代码(可能出错的代码)
     except 错误类型 as e:    # e是系统提示的错误信息
        针对该错误的解决问题的方式
3.针对不同的错误类型可以制定不同的方案
	try:
        待检测的代码
 	except 错误类型1 as e:
        针对错误类型1的方案
 	except 错误类型2 as e:
        针对错误类型2的方案
  	except 错误类型3 as e:
        针对错误类型3的方案
     ...
    #此时若待检测的代码中有多个错误但也只会返回最上面(第一个)的错误
4.万能异常 Exception/BaseException
	try:
        待检测的代码
    except Exception as e:
        针对常见的错误全部一类处理
5.结合else使用
	try:
        待检测的代码
    except Exception as e:
        解决方案
    else:
        try的子代码没有出任何错误则会执行else后的子代码
6.结合finally的使用:
    try:
        待检测的代码
    except Exception as e:
        解决方案
    finally:
        无论try的代码是否具有错误 最后都会执行finally之后的代码

3.异常处理补充

1.断言
	name='xiaochen'
    assert isinstance(name,str)
    print('是字符串')
2.主动抛出异常
	name = 'jason'
  	if name = 'jason':
        raise Exception('报错信息')
	else:
        print('正常')

image

4.异常处理实战应用

1.能少用就少用 被检测的代码越少越好 因为占用资源
2.当代码出现无法控制的情况报错才考虑使用(使用软件时断网)
3.使用 while循环来实现 for循环
	l1 = [11,22,33,44]
    a = l1.__lite__()  # 将其变为一个可迭代对象
    while True:
        try:
            print(a.__next__())
            #使用__next__()来将数据遍历
            except Exception as i:   # 自动捕捉异常
                pass
            

使用while循环来实现range的功能

1.两个参数一起来

image

2.加上第三个参数 (公差)

image

3.花活(倒叙)

image

5.生成器对象

1.本质
	内置函数__iter__和__next__的迭代器对象
2.区别
	迭代器对象是解释器提供的
    	数据类型\文件对象>>>:迭代器对象
    生成器对象是程序员编写出来的
    	代码 关键字>>>:迭代器对象(生成器)
3.创造生成器的基本语法
	函数体代码中填写yield关键字
    def my_iter():
        print('111')
        yield
    '''
    当函数体代码有yield关键字
    那么函数名加括号并不会执行函数体代码
    生成一个生成器对象(迭代器对象)
    '''
    可以使用一个变量名来承接yield后的返回值
    #只有再次执行__next__或是加括号被调用才会继续执行函数体代码
    每次执行到yield都会停止在yield的位置
    #只要在yield后填写就可以自定义返回值

6.yield冷门用法

def eat(name,food=None):
    print(f'{name}准备用餐')
    while True:
        food = yield
        print(f'{naem}正在吃{food}')

        
res = eat('xiaochen')
res.__next__()
res.send('包子')   # xiaochen正在吃包子
red.send()        # xiaochen正在吃None
# 1.将括号内的数据传给yield前面的变量名    2.再自动调用__next__

image

7.生成器表达式

简化表达式

image

特殊用法(面试题)     # 记住套路即可

image

免责声明 16,资源类别:文本, 浏览次数:69 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 06:45:07。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/xiaochenxiangchangpang/p/16799463.html