for循环

python基础6 迭代器 生成器

半城伤御伤魂 提交于 2019-12-28 01:13:15
迭代器 可迭代的或迭代对象 可迭代的: 内部含有__iter__方法的数据类型叫可迭代的,也叫 迭代对象 , range是一个迭代对象 ,内部含有iter()方法。为什么可迭代对象能被for 循环,因为可迭代对象含有iter方法,只要函数iter方法的对象就可以被for循环。这也是可迭代协议。 运用dir()方法来测试一个数据类型是不是可迭代的的。如果含有iter的,就是可迭代对象、 迭代器协议 迭代器协议 是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常, 以终止迭代 (只能往后走不能往前退)。 迭代器:可以被 next() 函数调用并不断返回下一个值的对象称为迭代器 ,迭代器是一个实现了迭代器协议的对象。也可以这样说包含next方法的可迭代对象叫迭代器 迭代器和列表的区别? 区别在于节省内存和惰性运算 如果我有一个列表中有500个数据,那么这个列表就非常占用内存,如果把列表变为迭代器,就占用很少的内存,为什么会占用内存少呢,因为迭代器只记录当前这元素和下一个元素,当你找我要的时候我才在内存中生成数据,不找我要,就不生成数据,也就不占用内存,这就是迭代器的惰性运算。 如何区分迭代器和可迭代对象?这个在我们时间长了后会混淆。 可迭代对象最简单的定义:可以使用for in 语句进行循环的对象。比如字符串、列表、元组

双层for循环读取数据

半腔热情 提交于 2019-12-28 01:04:18
用途:根据父类不同的id查询出其对应的不同的子类 内容:不仅包括父类的信息,其不同的子类信息一并查询出来 格式:for(Map<String, Object> 要遍历的集合的重命名:要遍历的集合){     //得到父类的id传给子类      List<Map<String, Object>> son = hunterAllDao.getHunterSubjectList2(Long.valueOf(parent.get("id").toString()));     //循环遍历子类     for(Map<String, Object> map : son){       //要处理的数据     }     //将子类查询出来的数据put进父类中     parent.put("son", son);    } 具体案例: // 2:父级栏 专题分类查出所对应的专题名称 List<Map<String, Object>> hunterSubjectList = hunterAllDao.getHunterSubjectListParent2(); for (Map<String, Object> parent : hunterSubjectList) { // 专题分类查出所对应的专题名称并取出ID List<Map<String, Object>> son =

跳出双层for循环

北战南征 提交于 2019-12-28 01:03:27
1 switch (a) { case 1: { }break; case 4: { for (int i=0;i<2;i++) { for (int j=0;j<2;j++) { UILabel *la=[[UILabel alloc]init]; la.backgroundColor=[UIColor blackColor]; la.frame=CGRectMake(100+j*35,100+i*35,30,30); [self.window addSubview:la]; } } }break; case 2: case 3: case 5: case 6: case 7: case 8: case 9: { int x; for (int i=0;i<3;i++) { if (i==x) { break; } for (int j=0;j<3;j++) { if (i*3+j==a) { x=i+1; break; } UILabel *la=[[UILabel alloc]init]; la.backgroundColor=[UIColor blackColor]; la.frame=CGRectMake(100+j*35,100+i*35,30,30); [self.window addSubview:la]; } } }break; default: break; }

for 穷举、迭代 while循环

家住魔仙堡 提交于 2019-12-27 18:50:47
1、穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。 2.百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下刚好花完100文钱?(或者大马驼2石粮食,中等马驼1石粮食,两头小马驼1石粮食,要用100匹马,驼100石粮食,该如何分配?) 2、迭代: 从初始情况按照规律不断求解中间情况,最终推导出结果。 while循环: while 循环,其实是for循环的变形写法 for(int i = 1; i<=5;i++) { 循环体; } 写成while的形式如下: int i = 1; 先写初始条件 while(i <= 5) 直接写循环条件 { 循环体; i++;在中括号内给出改变方式,否则将会进入死循环 } 同样的百鸡百钱 do while 不管你的条件是否满足,最少会执行一遍循环体 int a = 5; do { Console.WriteLine(""); 不看条件先执行一遍 a++; 然后执行状态改变 }while(a > 5); 判断改变后的条件是否满足 来源: https://www.cnblogs.com/shadow-wolf/p/5949006.html

存储过程与函数

僤鯓⒐⒋嵵緔 提交于 2019-12-27 13:59:05
存储过程与函数 1. 存储过程的定义 2. 存储过程的创建 3. 存储过程的操作 3.1 存储过程的调用 3.2 存储过程的查看 3.2.1 SHOW PROCEDURE STATUS查看存储过程的状态 3.2.2 SHOW CREATE PROCEDURE 查看存储过程的信息 3.2.3 INFORMATION_SCHEMA.ROUTINES查看存储过程的信息 3.3 存储过程的删除 4. 自定义函数 4.1 自定义函数的创建 4.2 自定义函数的调用 4.3 变量 4.3.1 定义变量 4.3.2 变量赋值 4.3.2.1 变量赋值(1) 4.3.2.2 变量赋值(2) 4.4 流程控制语句 4.4.1 if语句 4.4.2 CASE语句 4.4.3 LOOP语句 4.4.4 LEAVE语句 4.4.5 ITERATE语句 4.4.6 REPEAT语句 4.4.7 WHILE语句 4.5 光标的使用 4.5.1 声明光标 4.5.2 打开光标 4.5.3 使用光标 4.5.4 关闭光标 4.6 定义条件和处理程序 4.6.1 定义条件 4.6.2 定义处理程序 1. 存储过程的定义 存储过程是一组完成特定功能的SQL语句集合 将常用或复杂的工作,预先用SQL语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中, 因此称为存储过程 2. 存储过程的创建

python之迭代器和生成器

天大地大妈咪最大 提交于 2019-12-27 07:30:34
一、迭代器协议 1、什么是迭代器协议 (1)、迭代器协议指对象必须提供一个next方法,执行该方法要么返回迭代中的下一项, 要么就引起一个StopIteration异常,以终止迭代(只能往后奏不能往前走) (2)、可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义了一个__iter__()方法) (3)、协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(for循环、sum、min、max函数) 使用迭代器协议访问对象 二、for循环机制 for循环的本质:循环所有对象,全都是使用迭代器协议 备注:for循环的本质就是遵循迭代器协议去访问对象,那么for循环的对象可定都是迭代器了啊,么错, 既然这样,for循环可以遍历(字符串、列表、元组、字典、集合、文件对象),那这些类型的数据肯定都是可迭代对象啊?但是,为什么我定义了一个列表l=[1,2,3,4,4]没有next()方法? ——字符串、列表、元组、字典、集合、文件对象这些都不是可迭代对象,只不过在for循环中,调用了他们 内部的__iter__方法,把他们变成了可迭代对象 ———for循环调用可迭代对象的__next__方法进行取值,而且for循环会捕捉Stopiteration异常,以终止迭代 1、for循环工作机制的模拟 1 l = [1,2,3] #将列表赋值为l 2 # for i in l:

Python-迭代器和生成器

▼魔方 西西 提交于 2019-12-27 07:25:23
一、递归和迭代:   1、递归(问路的案例)     递归算法是自己调用自己的过程   2、迭代(父生子,子生孙)       更新换代 二、迭代器协议:   1、迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就触发StopTteration异常,已终止迭代(只能往下走,不能往上走)   2、可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法)   3、协议是一种约定,可迭代对象实现了迭代器协议,Python的内部工具(for循环,sum,max,min函数等)使用迭代器协议访问对象   4、for循环的本质就是遵循迭代器协议取访问对象,那么for循环的对象肯定都是迭代器。   5、不可迭代对象:字符串,列表,元组,字典,集合,文件对象。只不过for循环时,调用了他们的内部__iter__()方法,把他们变成了可迭代对象     -注-       1、生成器是可迭代对象       2、实现了延迟计算,看内存(按需执行)         3、生成器本质和其他类型一样,都是实现了迭代器协议,只不过生成器是一边计算一边生成,从而节省内存空间,其余的可迭代对象没有这个功能 三、迭代器:     1、遵循迭代器协议的访问方式: 1 x='hello' # 非可迭代对象 2 # print(dir(x)) 3 iter

python_10 迭代器和生成器

徘徊边缘 提交于 2019-12-27 07:21:27
迭代器协议: 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stopiteration异常,以终止迭代(只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义_iter_方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象 for循环机制: for循环的本质:循环所有对象,全都是使用迭代器协议。 (字符串,列表,元组,字典,集合,文件对象)这些都不是可迭代对象,只不过在for循环时,调用了他们内部的_iter_方法,把他们变成了可迭代对象 然后for循环调用可迭代对象的_next_方法去取值,而且for循环会捕捉Stopiteration异常,以终止迭代。 s='abc' s_i=s.__iter__() print(s_i.__next__()) print(s_i.__next__()) print(s_i.__next__()) print(s_i.__next__())#抛StopIteration异常 >>>a >>>b >>>c >>>a Traceback (most recent call last): b File "E:/ch/Pylearning/Learning_09.py",

Python的迭代器与生成器

喜你入骨 提交于 2019-12-27 07:12:10
Python中的生成器和迭代器方便好用,但是平时对生成器和迭代器的特性掌握的不是很到位,今天将这方面的知识整理一下。 迭代器 为了更好的理解迭代器和生成,我们需要简单的回顾一下迭代器协议的概念。 迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象。 for循环 for循环的本质:循环所有对象,全都是使用迭代器协议。 for循环就是基于迭代器协议提供了一个统一的可以遍历所有对象的方法,即在遍历之前,先调用对象的__iter__方法将其转换成一个迭代器,然后使用迭代器协议去实现循环访问,这样所有的对象就都可以通过for循环来遍历了, 列表,字符串,元组,字典,集合,文件对象等本质上来说都不是可迭代对象,在使用for循环的时候内部是先调用他们内部的_iter_方法,使他们变成了可迭代对象,然后在使用可迭代对象的_next_方法依次循环元素,当元素循环完时,会触发StopIteration异常,for循环会捕捉到这种异常,终止迭代。

Django模板语言相关内容

雨燕双飞 提交于 2019-12-27 06:06:39
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}。 变量 {{ 变量名 }} 变量名由字母数字和下划线组成。 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值。 几个例子: view中代码: def template_test(request): l = [11, 22, 33] d = {"name": "alex"} class Person(object): def __init__(self, name, age): self.name = name self.age = age def dream(self): return "{} is dream...".format(self.name) Alex = Person(name="Alex", age=34) Egon = Person(name="Egon", age=9000) Eva_J = Person(name="Eva_J", age=18) person_list = [Alex, Egon, Eva_J] return render(request, "template_test.html", {"l": l, "d": d, "person_list": person_list