函数的调用满足“后进先出”的原则,也就是说,最后被调用的函数应该第一个返回,函数的递归调用就是一个经典的例子。显然,内存中以“后进先出”方式处理数据的栈段是最适合用于实现函数调用的载体,在编译型程序语言中,函数被调用后,函数的参数,返回地址,寄存器值等数据会被压入栈,待函数体执行完毕,将上述数据弹出 ...
分类:
编程语言 时间:
2018-05-19 13:10:01
阅读次数:
189
generator #生成器 可迭代 只能读取一次 实时生成数据,不全存在内存中 用列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费 ...
分类:
编程语言 时间:
2018-05-18 14:13:11
阅读次数:
208
1.python生成器 2.while 1: num = input('请输入一个整数(输入Q结束程序):') if num != 'Q': num = int(num) print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num)) print('十进制 -> 八进制 ...
分类:
编程语言 时间:
2018-05-17 18:50:10
阅读次数:
276
1.三元表达式之坑 很显然,Python把第一行的(10 + 4)看成了三元表达式的前部分,这个坑是看了《Python cookbook》(P5)中学到的,书中的代码: 2.Python生成器(yield)+递归 前两天一直纠结python的生成器递归该怎么写,今天看了os.walk()的代码恍然大 ...
分类:
编程语言 时间:
2018-05-16 15:24:58
阅读次数:
191
一、列表生成式: 列表生成式即python内置的非常简单且强大的生成list的生成式。 range(1,10)方法可以生成一个简单的list, 这样生成一个list有些许累赘,列表生成式就是为了简化这一过程: for后边还可以加if判断,过滤出列表中所有的奇数: 还可以两个for循环一起使用: 二、 ...
分类:
编程语言 时间:
2018-05-12 16:22:40
阅读次数:
163
以下是对Python官网内容的翻译 需要注意的是目前这个版本是Python3.7预计发布的四个预览版本之三。 Python Release Python 3.7.0b3 Python数据类 Python生成器异常处理 在Python 3.7中,生成器引发StopIteration异常后,StopIt ...
分类:
编程语言 时间:
2018-05-11 23:36:53
阅读次数:
234
一、创建生成器 在python中,这种一边循环一边计算的机制,叫生成器。生成器是可迭代对象。 生成器特点: 1.节约内存。 2.迭代到下一次的调用时,所使用的都是第一次保留下的,而不是新创建的。 第一种方式: 把中括号换成括号 第二种方式: 拿著名的斐波拉契数列举例 函数想变成生成器,则把想要打印出 ...
分类:
编程语言 时间:
2018-05-09 01:13:57
阅读次数:
178
什么是生成器? 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议,所以生成器就是一个可迭代对象。生成器可以说是提供了一种新的模式,那就是可以计算一部分,然后返回计算结果。但是保留了当前状态,下次可在另外一个地方调用它,它会继续按以前状态继续执行下去。这对于数据量很大的程序有很大的用处。总之就 ...
分类:
编程语言 时间:
2018-05-05 00:25:32
阅读次数:
275
一、列表生成式: 1、生成一个列表: list = [ i*2 for i in range(10)] #使用列表生成式生成一个列表,占据内存空间,当数量大时会造成很大的浪费。 print(list) 2、使用生成器生成列表:(generator) list1 = ( i*2 for i in ra ...
分类:
编程语言 时间:
2018-05-04 18:22:17
阅读次数:
180
来源:菜鸟教程 在 Python 中,使用了 yield 的函数被称为生成器(generator)。 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。 在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 y ...
分类:
编程语言 时间:
2018-04-27 02:12:37
阅读次数:
178