生成器: 在函数内部包含yield关键字,那么该函数执行的结果就是生成器(生成器就是迭代器) yield的功能:1.把函数的执行结果做成迭代器(帮函数封装好__iter__,__next__方法) 2.函数暂停与再继续运行的状态是由yield保存的 yield与return的比较? 相同点:都有返回 ...
分类:
编程语言 时间:
2017-07-25 12:37:18
阅读次数:
126
一、定义 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调用自己内置的__iter__方法),所以生成器就是可迭代对象 二、生成器的两种形式(Python有两种不同的方式提供生成器) 1.生成器函数:常规函数定义,但是,使用yield语句而不是return语句返回结果。 ...
分类:
编程语言 时间:
2017-07-24 00:01:00
阅读次数:
281
迭代器iterator迭代,即一些事要重复好多次,就像在循环中做的那样。一个对象是否可迭代,全都取决于这个对象是否有__iter__方法,只要该对象实现了__iter__方法,调用对象的__iter__方法,就回返回一个迭代器,这个迭代器一定具有next方法(调用这个方法时不需要任何参数),..
分类:
编程语言 时间:
2017-07-21 15:35:18
阅读次数:
176
一、生成器 一遍循环一遍计算的机制,称为生成器 二、生成器的特点: 1、节约内存 2、迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的 三、创建方法 1、把列表生成式的[]改为() 以上代码运行结果 2、yield 生成 ...
分类:
编程语言 时间:
2017-07-19 23:20:49
阅读次数:
191
#!/usr/bin/env python import osimport sys def read_file(fpath): Block_Size = 1024 with open(fpath,"r") as f: while True: block = f.read(Block_Size) if ...
分类:
编程语言 时间:
2017-07-02 10:13:40
阅读次数:
221
1 # -*- coding:utf-8 -*- 2 # LC 3 # 列表生成式 4 def func(x): 5 print(x) 6 return 2*x 7 print([ func(i) for i in range(10) ]) 8 9 a = [ i*2 for i in range(... ...
分类:
编程语言 时间:
2017-07-02 00:09:52
阅读次数:
216
密码生成器:
密码格式为:密码+空格+字符(随机产生自定义长度)
10.1.1.1%V!Z{#2)9G,-
10.1.1.2xWIg;9zIdn?}
10.1.1.3)PRRQiKU@oCj
10.1.1.4sX<_?Z.<yd9&
10.1.1.5Y{Zy[ym6z.,O
10.1.1.6[qbXiBt37Rcu
10.1.1.7)Xs7t6[^NlDP
10.1.1.8H4CwO!!W8fAZ
10.1.1.9#;VXI4lga..
分类:
编程语言 时间:
2017-07-01 21:45:38
阅读次数:
387
生成器是一种特殊的迭代器,内部支持了生成器协议,不需要明确定义__iter__()和next()方法。生成器通过生成器函数产生,生成器函数可以通过常规的def语句来定义,但是不用return返回,而是用yield一次返回一个结果。 一、yield和迭代器生成器 迭代器是非常高效的类型,无论是从时间复 ...
分类:
编程语言 时间:
2017-06-28 19:03:58
阅读次数:
225
在这里想看一行代码 这是一个列表生成式。如果我们给的数不是range(10)而是range(100000000000000)呢。大家都知道生成一个列表是需要占用内存的,如果我range的数足够大的话,就会占用很多内存,浪费大量内存。 所以我们就引出一个新的名词“生成器”那么什么是生成器呢? 我们可以 ...
分类:
编程语言 时间:
2017-06-27 18:48:48
阅读次数:
112
迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,以终止迭代(只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对 ...
分类:
编程语言 时间:
2017-06-16 21:13:48
阅读次数:
198