python for循环

Python【day 13】内置函数02

巧了我就是萌 提交于 2019-12-03 06:09:23
一、作用域相关-2个 1、locals() 参数是空 返回当前位置作用域的所有变量,返回的是字典 当前位置:函数内,返回局部变量 当前位置:函数外,返回全局变量 2、globals() 参数是空 返回全局变量,返回的是字典二、迭代器-生成器相关--3个 1、range() 生成数字数据,例如:等差数列 参数是数字 2、next() 参数是迭代器-Iterator,返回的是迭代器的一个取值,只能向下取值,不能后退 和迭代器.__next__()等效--内部原理 3、iter() 用于把Iterable转换成迭代器 参数是Iterable,返回的是迭代器,内部调用的是Iterable.__iter__() 可迭代类型的(可迭代的):Iterable 包括:str list tuple dict set range() open() 迭代器:Iterator Iterator = iter(Iterable) 或者 Iterator = Iterable.__iter__() 注意:列表是Iterable,而不是Iterator三、其他-12个 1、字符串类型代码的执行--3个 1、eval() 作用:用于实现计算器,字符串表达式的执行 参数:字符串表达式 比如:'1+3' 返回:int--计算结果 应用场景:有返回值的字符串形式的代码- 比如:计算器、'[1,2]'或者"{'name'

Python 生成器

百般思念 提交于 2019-12-03 05:22:19
Python 生成器 来自 https://www.runoob.com/python3/python3-iterator-generator.html 转自 https://www.liaoxuefeng.com/wiki/1016959663602400/1017323698112640 可以直接作用于 for 循环的数据类型有以下几种: 一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等; 一类是 generator ,包括生成器和带 yield 的generator function。 这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable 。 可以使用 isinstance() 判断一个对象是否是 Iterable 对象: >>> from collections import Iterable >>> isinstance([], Iterable) True >>> isinstance({}, Iterable) True >>> isinstance('abc', Iterable) True >>> isinstance((x for x in range(10)), Iterable) True >>> isinstance(100, Iterable) False 而生成器不但可以作用于 for

Python中List详解

我的未来我决定 提交于 2019-12-03 04:47:06
定义 python中在[ ]内,用逗号隔开的任意数据类型 l1 = [1, 'a', [2, 2, 3]] 类型转换 PS:但凡能被for循环遍历的数据类型,均可传递list()转换为列表类型,list()将会像for一样遍历数据类型的每一个元素然后放到列表中 print(list('str')) # 字符串 print(list((1, 2, 3))) # 元组 print(list({1, 2, 3, 4})) # 数组 print(list([1, 2, 3, 4])) # 列表 print((list({'name': 'yyh', 'age': 18}))) # 字典 操作方式 # 1.按索引取值,正为从左往右,负为从右往左 my_list = [1, 2, 3, 4, 5] print(my_list[1]) print(my_list[-1]) # 2.切片,起始:结束:步长 my_list = [1, 2, 3, 4, 5] print(my_list[1:4]) print(my_list[::2]) print(my_list[::-1]) # 逆序输出列表 # 3.长度 my_list = [1, 2, 3, 4, 5] print(len(my_list)) # 4.in和not in my_list = [1, 3, 5, 7, 9] for i in

python 递归、for循环、while循环三种方式求1到100的和

心不动则不痛 提交于 2019-12-03 03:48:21
用三种方式:递归,for循环、while循环求1到100的和,三种方式,都采用函数的形式。(楼主用了40多分钟整理测试!) 第一种for循环: def fsum(n): s=0 for i in range(1,n+1): s=s+i print(s) fsum(100) 第二种while循环: def wsum(n): i=0 s=0 while (i<n): i+=1 s=s+i print(s) wsum(100) 第三种递归: 1 def sum(n): 2 3 if n==1: 4 return 1 5 return n+sum(n-1) 6 7 print(sum(100)) #求和,递归最大算到993,再大就报错了,994就死了。 来源: https://www.cnblogs.com/bcyczhhb/p/11775339.html

Python的迭代器和生成器详解

こ雲淡風輕ζ 提交于 2019-12-03 03:31:24
我们说Python是一门高效的语言,在于它内置的一些变量访问模式——其中迭代器和生成器,可以算是Python的特色了,功能强大,用起来很爽 迭代器(Iterator) 迭代器简介 迭代器(iterator)也成游标(cursor),是实现了迭代操作的对象,通过迭代器开发人员可以不同知道容器内部的详细情况而在容器(如链表、矩阵)上进行遍历 它是一个带状态的对象;在调用next()函数的时候返回容器的下一个值, 任何实现了__iter()__和__next()__方法的对象都是迭代器 ,__iter()__返回迭代器自身,__next()__返回容器的下一个值,如果容器没有更多的元素,就抛出StopIteration异常——所以说,迭代器是一个实现了工厂模式的对象 迭代器的好处总结起来八个字: 延迟计算,按需调用 Python内置的 iter() 函数用于生成一个迭代器,其中括号内参数可以是字符串、列表、或者元祖(它们都是可迭代对象,即可以用for..in语句进行遍历的对象) i = iter( "Hello" ) 使用 next() 函数对迭代器进行遍历 >>> next (i) H >>> next (i) e itertools模块 Python内指了一个很有意思的支持迭代的工具模块:itertools,该模块提供的全部是处理迭代功能的函数,它们的返回值不是list而是迭代对象

Python中的迭代器与生成器

时光怂恿深爱的人放手 提交于 2019-12-03 03:30:42
Python中的迭代器与生成器介绍 一、迭代器iterator 迭代器是访问可迭代对象的工具。 迭代器是指用iter(obj)函数返回的对象 迭代器是可以用next(it)函数获取可迭代对象的数据 1、迭代器函数 iter()与next() iter(iterable)从可迭代对象中返回一个迭代器,iterable必须是 能提供一个迭代器的对象 next(iterable) 从迭代器iterator中获取下一个记录,如果无法获 取下一条记录,则触发StopIterator异常 说明: ①迭代器只能往前取值,不会后退 ②用iter函数可以返回一个可迭代对象的迭代器 示例: >>> L = [1,3,5,7] >>> it = iter(L) #让L提供一个能访问自己的迭代器 >>> next(it) 1 >>> next(it) 3 2、迭代器的用途: 可以依次访问可迭代对象的数据(可代替循环遍历) 示例:>>> L = [1,23,45,6] >>> it = iter(L) >>> while True: try: x = next(it) print(x) except StopIteration: break 二、迭代工具函数: 作用是生成一个个性化的可迭代对象 函数: zip(iter1 [,iter2[....]]) 返回一个zip对象,此对象用于生成元组

Python 之迭代器与生成器

淺唱寂寞╮ 提交于 2019-12-03 03:29:57
目录 一 , 迭代器 1 , 初识迭代器 2 , 创建一个迭代器 3 , StopIteration 二 , 生成器 1 , 初识生成器 一 , 迭代器 1 , 初识迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法: iter() 和 next() 。 字符串,列表或元组对象都可用于创建迭代器: >>>list=[1,2,3,4] >>> it = iter(list) # 创建迭代器对象 >>> print (next(it)) # 输出迭代器的下一个元素 1 >>> print (next(it)) 2 >>> 迭代器对象可以使用常规for语句进行遍历: #!/usr/bin/python3 list=[1,2,3,4] it = iter(list) # 创建迭代器对象 for x in it: print (x, end=" ") 执行以上程序,输出结果如下: 1 2 3 4 也可以使用 next() 函数: #!/usr/bin/python3 import sys # 引入 sys 模块 list=[1,2,3,4] it = iter(list) # 创建迭代器对象 while True:

浅析 python 迭代器与生成器

此生再无相见时 提交于 2019-12-03 03:25:14
转载自我自己的 github 博客 ——> 半天钟的博客 要这篇博文有何用? 这篇博文是用于帮助理解 python 可迭代对象、迭代器与生成器的 ,你在阅读后应该能够比较清晰的理解 python 中迭代相关的概念与流程。 这篇博文能够解答: 在 python 中究竟什么是 迭代 ? 什么是 可迭代的对象 ,为什么 python 的序列类型的对象均可迭代? 迭代器 是啥?它和可迭代对象有什么关联? 生成器 又是啥? 生成器和迭代器有什么区别? 迭代的概念简述 循环就是迭代吗? 答:不是,但是迭代与循环有着千丝万缕的联系。 迭代是一个做有限次或者 “无限次” 重复动作的过程 、在这个过程里上一次重复动作的 结束状态 是下一次重复动作的**开始状态。**每一次重复都可以称之为一次迭代。 相比于单纯的循环、迭代有一个 额外的限制条件 —— 必须存在着 记录状态 的记录员,用来保存上一次迭代的结束状态。 下面这个代码说明了循环和迭代的区别,其中模拟的迭代过程中的变量 i 就是记录员: #单纯的循环 while True : print ( 'This is Loop' ) #模拟的迭代过程 i = 0 while True : print ( 'This is iter of No.' + str ( i ) ) i += 1 结果: #单纯的循环 This is Loop This is

Python中生成器和迭代器的区别

我的未来我决定 提交于 2019-12-03 03:24:39
Python中生成器和迭代器的区别(代码在Python3.5下测试): Num01–>迭代器 定义: 对于list、string、tuple、dict等这些容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数。iter()是python内置函数。 iter()函数会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内的元素。next()也是python内置函数。在没有后续元素时,next()会抛出一个StopIteration异常,通知for语句循环结束。 迭代器是用来帮助我们记录每次迭代访问到的位置,当我们对迭代器使用next()函数的时候,迭代器会向我们返回它所记录位置的下一个位置的数据。实际上,在使用next()函数的时候,调用的就是迭代器对象的 _next_ 方法(Python3中是对象的 _next_ 方法,Python2中是对象的next()方法)。所以,我们要想构造一个迭代器,就要实现它的 _next_ 方法。但这还不够,python要求迭代器本身也是可迭代的,所以我们还要为迭代器实现 _iter_ 方法,而 _iter_ 方法要返回一个迭代器,迭代器自身正是一个迭代器,所以迭代器的 _iter_ 方法返回自身self即可。 一些术语的解释: 1,迭代器协议:对象需要提供next()方法,它要么返回迭代中的下一项

深入PYTHON迭代器与生成器

左心房为你撑大大i 提交于 2019-12-03 03:23:55
title: 迭代器与生成器 copyright: true top: 0 date: 2019-02-24 11:59:54 tags: 迭代器与生成器 categories: Python高阶笔记 permalink: password: keywords: description: 从源码程度解析迭代器与生成器,并且列出他们的原理与应用场景实例。 誓言是最没用的东西,只有你对别人还有用时,别人才会遵守。 在本章节之前,请把以往的知识点进行回顾: 迭代器与可迭代对象 生成器与生成可迭代对象 内置魔法函数之iter-next 迭代器与可迭代对象 概念 迭代器:是访问数据集合内元素的一种方式,一般用来遍历数据,但是他不能像列表一样使用下标来获取数据,也就是说迭代器是不能返回的。 Iterator:迭代器对象,必须要实现next魔法函数 Iterable:可迭代对象,继承Iterator,必须要实现iter魔法函数 比如: from collections import Iterable,Iterator a = [1,2,3] print(isinstance(a,Iterator)) print(isinstance(a,Iterable)) 返回结果: False True 在Pycharm中使用alt+b进去list的源码中可以看到,在list类中有iter魔法函数