首页 > 其他分享 >异常处理 生成器

异常处理 生成器

时间:2022-10-17 19:59:54浏览次数:37  
标签:__ 处理 代码 生成器 yield try print 异常

今日内容

异常常见类型

NameError
IndentationError
SyntaxError
KeyError
SyntaxError

异常处理语法结构

1.基本语法结构
  try:
    待检测的代码(可能会出现错误的代码)
  except 错误类型:
    针对上述错误类型制定的方案
2.查看错误的信息
   try:
     待检测的代码(可能会出现错误的代码)
   except 错误类型 as 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 :
       针对各种常见的错误类型全部同意处理
     else:
       try 的子代码正常运行结束没有任何的报错后 在执行else子代码
     finally
        无论try的子代码是否报错 最后都要执行finally子代码

异常处理补充

1.断言
   name = 'jason'
   assert isinstance (name,str) #断言name是不是字符串
   print('哈哈哈哈')#断言不成功 那接下来的代码都不执行
2.主动抛异常
   name = 'jason'   
   if name == 'jason':     #如果名字是jason 报异常 
       raise exception ('不行')
   else:                  #不是jason 正常走
     print('正常走')

异常处理实战应用

1.异常处理能少用就少用
2.被try检测的代码能尽量少就尽量少
3.只有当代码中出现了 无法控制的的情况才应该考虑使用
   eg:使用手机访问网络
       编写网络爬虫程序数据请求 断网
    l1 = [11,22,33,44,55,66]
    list =l1.__iter__()
    while True:
        try:
            print(list.__next__())
        except StopIteration as e :
            break

生成器对象

1.本质
  内置有__iter__和__next__的迭代器对象
2.区别
  迭代器对象是解释器自动提供的
     数据类型\文件对象:迭代器对象
  生成器对象是程序员编写出来的
      代码、关键字:迭代器对象(生成器)
3.创建生成器的基本语法
   函数体代码中填写yield关键字
    #def m_ite():
    #   print('哈哈哈')
    #   yield 
    '''
    1.函数体代码中如果有yield关键字
      那么函数名加括号并不会执行函数体代码
      会生成一个生成器对象(迭代器对象)
    '''
    res = my_iter()
    '''2.使用加括号之后的结果调用__next__才会执行函数体代码'''
    res.__next__()
    '''3.每次执行完__next__代码都会停在yield位置 下次基于该位置继续往下找第二个yield'''
    def my_iter():
        print('哈哈哈哈')
        yield 1,2,3
        print('嘻嘻嘻')
        yield 2,3,4,
     res = my_iter()
     r1 = res.__next__()
     print(r1)
     r2 = res.__next__()
     print(r2)
     '''4.yield 还有点类似于return 可以返回返回值'''
    

yield冷门用法

def eat (name,food=None):
    print(f'{name}准备用餐')
    while True:
        food = yield
        print(f'{name}正在吃{food}')
res = eat('jason')
res.__next__()
res.send('汉堡')#将括号内的数据传给yield前面的变量名 再自动调用__next__
res.send('薯条')

生成器表达式

就是生成器的简化写法
l1 = (i+1 for i in range (200))
print (l1)

标签:__,处理,代码,生成器,yield,try,print,异常
From: https://www.cnblogs.com/lzy199911/p/16800362.html

相关文章

  • day16异常以及生成器
    目录今日内容详细异常常见类型异常处理语法结构异常处理补充异常处理实战应用生成器对象课堂练习yield冷门用法生成器表达式今日内容详细异常常见类型AttributeError......
  • 异常捕捉/生成器
    异常常见类型SyntaxError-语法错误NameError-变量名类型错误IndexError-索引错误KeyError-字典键错误IndentationError-缩进错误#注意我们最不允许犯的......
  • 数字保留两位小数,处理精度问题
    在vue的filters中添加数字处理的方法priceFilter(val){val=Math.round(val*100)/100constvalStr=val.toString()if(valStr.indexOf('.')===-1)ret......
  • 异常和生成式
    异常常见类型AssertionError 断言语句失败(assert后的条件为假)AttributeError 访问的对象属性不存在lmportError 无法导入模块或者对象,主要是路径有误或名称错误ln......
  • 异常处理、生成器对象、生成器表达式
    异常处理、生成器对象、生成器表达式目录异常处理、生成器对象、生成器表达式一、异常常见类型二、异常处理语法结构三、异常处理的补充四、异常处理的实战应用五、生成器......
  • 异常补充与生成器
    异常常见类型SyntaxErrorNameErrorIndexErrorKeyErrorIndentationError异常处理语法结构1.基本语法结构 try:待监测的代码(可能会出错的代码)excep......
  • 异常处理与生成器
    今日内容总结目录今日内容总结异常常见类型异常处理语法结构异常处理补充异常处理实战应用生成器对象yield冷门用法生成器表达式练习题异常常见类型SyntaxError 语法......
  • 异常常见类型、异常处理语法、补充、实战、生成器对象、表达式
    目录异常常见类型异常处理语法结构异常处理补充异常处理实战应用生成器生成器对象生成器函数生成器练习题yield其他用法生成器表达式异常常见类型SyntaxError:Python语......
  • 异常处理和生成器对象
    目录一.异常常见类型二.异常处理语法结构1.基本语法结构2.查看错误信息3.针对不同的错误类型定制不同的解决方案4.万能异常Exception/BaseException5.结合else使用6.结合f......
  • 解决 Error creating bean with name 'UserMapper' defined in file异常处理和Cause:
    Errorcreatingbeanwithname'UserMapper'definedinfile异常处理和Cause:java.lang.IllegalArgumentException:ResultMapscollectionalreadycontains这两个问......