python编程基础之二十七

列表生成式:[exp for iter_var in iterable]

同样也会有字典生成式,集合生成式,没有元组生成式,元组生成式的语法被占用了

字典生成式,集合生成式,就是外面那个括号换成{}  字典里面一个个是键值对,集合可以与之区分

生成器:有两种写法:

一种就是写一个生成式放到()里面,这就是一个生成器,

 1 #将列表生成式中的[]替换成()
 2 ge = (x for x in range(1,6))
 3 print(ge,type(ge))
 4
 5 #生成器需要通过next()方法获取数据,调用一次则返回一个数据
 6 print(next(ge))
 7 print(next(ge))
 8 print(next(ge))
 9 print(next(ge))
10 print(next(ge))

yiled表达式

  yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次重它离开的地方继续执

 1 #通过函数和yield关键字生成
 2 #使用了 yield 的函数被称为生成器(generator)
 3 #yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次从它离开的地方继续执行
 4  def test(n):
 5   for i in range(1,n + 1):
 6       yield i
 7       #print(i)
 8 #得到生成器
 9  result = test(10)
10  print(result)
11
12  #生成器只能遍历一次, 所以下面不会有任何输出
13  for x in result:
14       print(x)
15       

迭代对象:可以用for in 结构的都是迭代对象,常用的有list , set ,tuple ,dict, str,生成器

判断是否是迭代器,可以用isinstance(,Iterable)判断,需要导入Iterable

1 #引入 from collection  import Iterable
2 from collections import Iterable
3 print(isinstance("",Iterable))#True
4 print(isinstance({},Iterable))#True
5 print(isinstance((),Iterable))#True
6 print(isinstance(1,Iterable))#False

迭代器:那些生成器都是迭代器,迭代器都是迭代对象,但是迭代对象不一定是迭代器

判断方式也是用同一个函数参数要换成Iterator  需要导入Iterator , Iterable

1 from collections import  Iterator,Iterable
2 print(isinstance([],Iterator))  #False
3 print(isinstance((),Iterator))  #False
4 print(isinstance({},Iterator))  #False
5 print(isinstance("",Iterator))  #False
6 print(isinstance((x for x in range(0,6)),Iterator))  #True 生成器是迭代器
7 print(isinstance((x for x in range(0,6)),Iterable)) #True 生成器也是迭代对象

迭代器

迭代器可以和迭代对象之间转换

1 print(isinstance(iter([]),Iterator)) #True
2 print(isinstance(iter(()),Iterator)) #True
3 print(isinstance(iter({}),Iterator)) #True
4 print(isinstance(iter(""),Iterator)) #True
5
6 l2 = iter(l1)  #将列表转换为迭代器
7 print(next(l2))  #使用next获取迭代器中的元素

原文地址:https://www.cnblogs.com/higer666/p/9441817.html

时间: 2024-08-30 16:47:06

python编程基础之二十七的相关文章

python编程基础之二

交互式: 此处以windows为例:开始->运行->cmd,输入python 交互式界面 优点:即时,所见即所得 缺点:代码不可复用,根本无法进行维护 退出:exit() 代码是顺序执行: 从左至右,从上至下 python文件以  .py  结尾 python允许一行多句,每一句之间用分号(:)分隔,但是建议一行一句不使用分号 文件名尽量不要使用中文,print输出的时候可以使用中文,文件名不能使用空格python编码规范遵循PEP8(https://www.python.org/dev/pe

Python编程基础(二)

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: if 判断条件: 执行语句--else: 执行语句-- x=int(input("请输入成绩"))if x>60: print('好')else: print('不及格') 精确判断:需要用到多层if else循环练习:用if写出判断成绩的等级: 95 了不得 90-95 优秀 80-90 良好 60-80 刚刚好 60以下 加油 grad

python编程基础之二十

字符串的其他常用方法: ord(char)  # 返回char字符对应的码值,可以是中文字符 chr(x)  # 输入一个unicode码,返回对应的字符 eval(str)  # 将str 中的内容以代码的形式返回 repr(x) 返回对象的str格式,适合机器执行 字符串格式化 %格式化: %[flags][width][.precision]typecode format格式化: [fill][align][sign][#][width][.precision][type] fill :填

python编程基础之二十八

装饰器:说白了就是闭包,但是内部函数调用外部变量调用的是函数, 好处:就是在不用修改原函数代码的前提下给函数增加新的功能 装饰器有两种写法 第一种: 1 #被修饰的函数 2 def say_hello(name): 3 print('我就是人见人爱,花见花开的%s'%name) 4 5 # 参数是被修饰函数 6 def wrapper(func): #1.定义装饰器 7 def inner(name): #2.定义闭包 在闭包中增加功能 8 print('-' * 50) 9 func(name

C#GDI+编程基础(二)

pen类:绘制指定宽度和样式的直线.使用DashStyle属性绘制几种虚线,可以使用各种填充样式(包括纯色和纹理)来填充Pen绘制的直线,填充模式取决于画笔或用作填充对象的纹理. 创建画笔: //用指定的颜色实例化一只画笔的方法如下: public Pen(Color); //用指定的画刷实例化一只画笔的方法如下: public Pen(Brush); //用指定的画刷和宽度实例化一只画笔的方法如下: public Pen(Brush , float); //用指定的颜色和宽度实例化一只画笔的方

Python编程基础

Python编程基础 数据类型 None 值 整型 浮点型 布尔类型True,False 字符串 元组 tuple(),有序,不可变例:t = (1,)t = (1,'Hello',1.0,True) 列表 list[],有序,可变 例:l = [1,'Hello',1.0,True] 字典 dict{},键-值对,无序例:d = {65:'A',48:0,'a':97,'Hello':'World'} 操作符 数学操作符 + - * / 除 // 整除 % 取模 ** 指数 比较操作符 ==

ActionScript3游戏中的图像编程(连载二十七)

2.2 Photoshop投影样式在Flash基本滤镜中的体现 作为上帝的另一个化身,Flash在图层样式方面自然也不甘示弱,不过在Flash里面,它有另外一个名字--滤镜(仅仅从概念上说,Flash的滤镜包含了Photoshop里的图层样式和滤镜). 下面就让我们打开Flash CS6/5.5,一起在滤镜里寻找Photoshop图层样式的影子吧,同时,我们先暂时把Photoshop的图层样式清除掉(把样式前面那些复选框的勾全部去掉即可). 先新建一个文档("文件"--"新建

[原创]ActionScript3游戏中的图像编程(连载二十七)

2.2 Photoshop投影样式在Flash基本滤镜中的体现 作为上帝的另一个化身,Flash在图层样式方面自然也不甘示弱,不过在Flash里面,它有另外一个名字——滤镜(仅仅从概念上说,Flash的滤镜包含了Photoshop里的图层样式和滤镜). 下面就让我们打开Flash CS6/5.5,一起在滤镜里寻找Photoshop图层样式的影子吧,同时,我们先暂时把Photoshop的图层样式清除掉(把样式前面那些复选框的勾全部去掉即可). 先新建一个文档(“文件”——“新建”或Ctrl+N),

从能做什么到如何去做,一文带你快速掌握Python编程基础与实战

摘要:Python语言的教程虽然随处可见,但是忙于日常业务/学习的你或许:一直想要"找个时间学一点",但是又不知道该从何下手?本文将从Python能做什么,如何学习Python以及Python的基础知识为你的Python之路点上一盏明灯. 本文内容根据演讲视频以及PPT整理而成. 本文的分享主要围绕以下几个方面: Python能做什么?(常见应用场景介绍) 如何学习Python? Python语法基础实战 Python面向对象编程实战 练熟基础:2048小游戏项目的实现与实战 福利:小