初识python: 生成器
生成器定义理解,直接上代码:
#!/user/bin env python
# author:Simple-Sir
# time:20181005
# 生成器
'''
# 列表生成式
a=[i for i in range(10)]
print(a) def fun_add(a,b):
return a+b
b = [fun_add(i,j) for i in range(1,4) for j in range(4,7)]
print(b)
''' '''
生成器: 一边循环一边计算的机制,就叫生成器generator
循环一次,计算一次,不需要先循环完再计算。
生成器只有在调用时才会生成相应的数据,
只记录当前位置的值
只有一个__next__方法 :获取下一个位置的值
'''
'''
# 生成器方式一:列表生成式
a = (i*2 for i in range(10))
print(a.__next__())
''' '''
# 生成器方式二:函数做生成器
# 斐波拉契数列,除了第一个和第二个外,任意一个数都由前两数相加得到。
def fblq(max):
n,a,b=0,0,1
# n=0
# a=0
# b=1
while n<max:
# print(b)
yield b # 将函数变成生成器,想要返回的值加yield,yield是一个类似return 的关键字
a,b = b,a+b
# 相当于 ==>
# t = (b,a+b) -->(1,0+1)
# a=t[0] -->1
# b=t[1] -->0+1
# 而不是 a=b,b=a+b
n += 1
return '执行完成' #异常消息
f = fblq(10)
print('打印第一个位置值',f.__next__())
print('打印下一个位置值',f.__next__())
print('打印下一个位置值',f.__next__())
print('开始循环打印')
''' '''
# 循环打印
for i in f:
print(i)
''' '''
g = fblq(3)
while True:
try:
x=next(g)
print('g',x)
except StopIteration as e:
print('错误信息',e.value)
break
''' '''
def scq_f():
for i in range(5):
for j in range(5):
k=i+j
#print(k)
yield k #关键点,将函数变成生成器,即将函数保持中断状态
return '错误信息'
# f = scq_f()
# for i in f:
# print(i)
f=scq_f() while True:
try:
x=next(f) # 即:f.__next__()
print('f',x)
except StopIteration as e:
print('错误信息:',e.value) #获取scq_f的return值
break '''
初识python: 生成器的更多相关文章
- @1-2初识Python爬虫
初识Python爬虫 Python爬虫(入门+进阶) DC学院 环境搭建: Python2与Python3的差异:python2与python3整体差异不大,大多是一些语法上的区别,考虑到py ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- Python开发【第一篇】:初识Python
初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
- Python开发【第二篇】:初识Python
Python开发[第二篇]:初识Python Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...
- python——生成器
python——生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个 ...
- 初识python面向对象
一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...
- 篇2 安卓app自动化测试-初识python调用appium
篇2 安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...
- 2017-06-22初识python
初识python #!/usr/bin/env python (python解释器的文件路径)# -*- coding:utf-8 -*- (使用的编码内型)# python 2.7 <需要加第 ...
- day01 初识Python
今日主要内容 1.初识python 2.简单了解下python的数据类型 nubmer=int(input("请输入数字大小:")) if nubmer>66: print( ...
- Python生成器-博文读后感
Windows 10家庭中文版,Python 3.6.4, 上午看过了一篇讲Python生成器的博文: 提高你的Python: 解释‘yield’和‘Generators(生成器)’(英文原文) 这篇 ...
随机推荐
- 【Linux】【专项突破】Linux重定向与管道
[专项突破]Linux重定向与管道 This article is written by Xrilang(Chinese Name:萌狼蓝天) If you want find me ,You can ...
- 【.NET6】gRPC服务端和客户端开发案例,以及minimal API服务、gRPC服务和传统webapi服务的访问效率大对决
前言:随着.Net6的发布,Minimal API成了当下受人追捧的角儿.而这之前,程序之间通信效率的王者也许可以算得上是gRPC了.那么以下咱们先通过开发一个gRPC服务的教程,然后顺势而为,再接着 ...
- 优化器统计跟踪(SYS.EXP_HEAD$ SYS.EXP_OBJ$ SYS.EXP_STAT$不)导致表空间 SYSAUX不断增长
资料来自support文档 ID 2354960.1 环境: aws rds 19c(亚马逊云oracle 数据库) 背景: 在一次查看数据库表段的占用空间大小的时候,无意间发现其中EXP_开头的表占 ...
- 严重危害警告!Log4j 执行漏洞被公开!
12 月 10 日凌晨,Apache 开源项目 Log4j2 的远程代码执行漏洞细节被公开,漏洞威胁等级为:严重. Log4j2 是一个基于 Java 的日志记录工具.它重写了 Log4j 框架,引入 ...
- Hibernate框架使用之环境搭建
第一步:引入所需的jar包 第二步:创建实体类,配置实体类与数据表的映射关系 创建实体类 User.java package cn.hao.entity; public class User { /* ...
- windows下php安装redis扩展
查看当前PHP版本 代码中添加 phpinfo(); 下载对应的redis扩展 下载链接:https://pecl.php.net/package/redis 因为我的PHP版本是5.6的,所以red ...
- Mybatis一对一、一对多级联查询使用
在A对象的xml配置文件中 一对一<association property="shop" column="shop_id" select="c ...
- 【九度OJ】题目1064:反序数 解题报告
[九度OJ]题目1064:反序数 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1064 题目描述: 设N是一个四位数,它的 ...
- 【LeetCode】312. Burst Balloons 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/burst-ba ...
- codeforces B. Island Puzzle
B. Island Puzzle time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...