python基础知识~ 函数详解2

本文详细介绍Python函数相关知识。包括生成器函数,有yield关键字的函数为生成器函数,yield可分段处理函数;推导式能一句话生成列表、字典;生成器表达式与推导式括号不同,有惰性机制;还介绍了迭代器,是遍历可迭代对象的通用方法,循环结束需异常判断。

python~函数详解2
 1 生成器函数
   定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数
  须知 yield和return一样,都可以返回数据,但是不会彻底中断函数,分段进行函数处理
  继续执行 函数(迭代器)
  __next__()
  __send__(参数)//和next具有同一个功能,还添加了给上一个值赋值功能
  def func()
  print(a)
  a=yield 1 //yield特殊定义
   print (b)
  b=yield 2说
  gen=funct//不会执行函数
  a=gen.__next___()//继续执行函数
  a=gen.__send__("wdadaw")
 注意
  1 书写生成器函数最后必须以yield结尾,否则会报异常
  2 最后一个yield不能传值,yield会打印输出
  3 可以通过for,list循环访问对象,则证明for和list循环自带__next__
 2 推导式
   一句话生成列表
   list=["python"+star(i) for i in range(10)]
   1 构成方式 结果 for循环 判断 
   2 多重for循环并排写即可
     一句话生成字典
     dick={a[key]:value for i in range(len(list)) }
    语法构成 {key:value 循环 条件判断}
  3 生成器表达式
   1 我们可以观察到,与上面推导式只是括号不同
   2 生成器表达式有惰性机制(如果有一个值被拿走,就没了,除非重新调用生成器函数)
   c=(a for i in a)
   c.__next__()

3 迭代器 

  定义 通用的遍历可迭代对象的方法(iterable)
  dir()可以查看某种数据类型可执行的方法(1 __iter__代表获取当前对象的迭代器 2 可以使用for循环 )
  内容
  __next__ 迭代下一次
 eg:
  s='123' object=s.__iter__() object.__next__()

 这里要注意,一旦循环结束会报异常,需要采用 try except进行异常判断

  try:

  except StopIteration:

   break

转载于:https://www.cnblogs.com/danhuangpai/p/10888959.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值