for循环

Python for循环与__getitem__的关系记录

99封情书 提交于 2020-01-01 00:47:53
一个类里面如果由__iter__for循环就是找它取,没有的话就会找__getitem__ 前面一笔看过没有留心具体的执行情况。 In [169]: class Foo: ...: def __getitem__(self, pos): ...: print(pos) ...: return range(10)[pos] ...: In [172]: for i in f: ...: ... ...: ...: 0 1 2 3 4 5 6 7 8 9 10 从代码可以看出,如果没有报错或者设置显式的条件,这个for循环会无线循环。 我现在设置一个显式的设置。 In [173]: class Foo: ...: def __getitem__(self, pos): ...: if pos >5: ...: raise StopIteration ...: print(pos) ...: return range(10)[pos] ...: In [177]: for i in f: ...: ... ...: 0 1 2 3 4 5 将错误设置为IndexError也可以执行,但TypeError就不行了。 ...: def __getitem__(self, pos): ...: if pos >5: ...: raise IndexError ...: print(pos) .

python中的generator

僤鯓⒐⒋嵵緔 提交于 2019-12-31 22:49:17
读 python进阶 记录 generator和Iterator类似,可以通过for循环来访问所有元素。 不一样的地方在:generator是每次for循环的时候生成(yield)一个元素,而iterator是访问内存中已存在的元素。 generator更加的节省空间。 举个例子: def fibon(n): a = b = 1 for i in range(n): yield a a, b = b, a + b for x in fibon(1000000): print(x) 来源: CSDN 作者: 依旧seven 链接: https://blog.csdn.net/seven08290/article/details/103767222

Python - 排序( 插入, 冒泡, 快速, 二分 )

大城市里の小女人 提交于 2019-12-31 22:09:03
插入排序 算法分析 两次循环, 大循环对队列中的每一个元素拿出来作为小循环的裁定对象 小循环对堆当前循环对象在有序队列中寻找插入的位置 性能参数 空间复杂度  O(1) 时间复杂度  O(n^2) 详细代码解读 import random def func(l): # 外层循环: 对应遍历所有的无序数据 for i in range(1, len(l)): # 备份 取出数据 temp = l[i] # 记录取出来的下标值 pos = i # 内层循环: 对应从后往前扫描所有有序数据 """ i - 1 > 从最后一个有序数据开始, 即无序数据前一位 -1 > 扫描到下标 0 为止, 要包括第一个, 因此设置 -1 往后推一位 -1 > 从后往前扫描 """ for j in range(i - 1, -1, -1): # 若有序数据 大于 取出数据 if l[j] > temp: # 有序数据后移 l[j + 1] = l[j] # 更新数据的插入位置 pos = j # 对应所有有序数据比取出数据大的情况 # 若有序数据 小于/等于 取出数据 else: pos = j + 1 break # 在指定位置插入数据 l[pos] = temp if __name__ == '__main__': l = list(range(1, 13)) random.shuffle(l)

for循环报错

旧时模样 提交于 2019-12-31 21:56:45
问题描述: for(int i=0;i<argc;i++){} 报错 int i; for(i=0;i<argc;i++){} 运行成功 原因: C99标准以前的C标准不支持临时变量在for循环中定义 来源: CSDN 作者: Cheldor 链接: https://blog.csdn.net/Cheldor/article/details/103788507

for循环,数字类型

∥☆過路亽.° 提交于 2019-12-31 16:57:50
一、for循环(不依赖于索引,但是可以用索引取值) while循环 VS for循环 1、while循环:称之为条件循环,循环的次数取决于条件何时为False for循环:称之为迭代式循环,循环的次数取决于数据包含的元素的个数 2、for循环专门用来取值,在循环取值方面比while循环要强大,以后但凡遇到循环取值的场景 ,就应该用for循环 ①l=['a','b','c'] for item in l: print(item) dic={'x':111,'y':222,'z':333} for k in dic: print(k,dic[k]) ②for+break names=['egon','kevin','alex','hulaoshi'] for name in names: if name == 'alex':break print(name) ③for+continue names=['egon','kevin','alex','hulaoshi'] for name in names: if name == 'alex':continue print(name) ④for+else ⑤for循环的嵌套 for i in range(3): for j in range(2): print(i,j) # 九九乘法表 # for i in range(1,10): #

了解Java程序4

流过昼夜 提交于 2019-12-31 12:51:16
今天主要内容是Java中的循环结构语句和跳转控制语句; for循环语句: 格式: for(初始化语句;判断表达式;步长语句){ 循环语句体; } 执行流程: 1 进入for循环,初始化语句给变量赋值; 2判断表达式是否成立,成立则执行循环语句体; 3控制变量与具体对变量进行递增; 4再次判断表达式是否成立,成立则执行循环语句体; 5依次执行,直到表达式不成立为止,for循环结束; 例: //在控制台输出500次"Hellowold" class Demo { public static void main ( String [ ] args ) { for ( int x = 1 ; x <= 500 ; x ++ ) { System . out . println ( "Helloworld" ) ; } } } 求和思想和阶乘思想, 求和思想: 第一个加数:前两个数据之和的结果; 第二个加数:从0开始一直到10; //求1到10之间的和 class Demo { public static void main ( String [ ] args ) { int sun = 0 ; for ( int x = 1 ; x <= 10 ; x ++ { sun += x ; } System . out . println ( "1到10之间的和为:" + sun ) ; } }

for循环和while循环的区别?

≡放荡痞女 提交于 2019-12-30 23:23:35
在开发中,如果明确循环的次数,使用for循环 ;不明确循环次数,使用while循环 从内存角度考虑,for循环的格式for(初始语句;条件语句;步长语句){循环体语句...},for循环结束之后, {}中的变量值会及时从内存中释放掉,不会消耗内存空间!while循环结束,还可以去访问变量值,不会立即从内存中 释放掉,等待GC垃圾回收器(垃圾回收线程,也称为守护线程!)空闲时候回收! 开发中优先使用for循环,其次是while循环 来源: 51CTO 作者: qq5e01e21075ea4 链接: https://blog.51cto.com/14651315/2463202

Django模版系统

若如初见. 提交于 2019-12-30 22:23:05
一、什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板。 二、模板语法分类 一、模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键是句点字符 .(也就是点) views.py def index(request): name = "hello haiyan" i = 200 l = [11,22,33,44,55] d = {"name":"haiyan","age":20} class People(object): #继承元类 def __init__(self,name,age): self.name = name self.age = age def __str__(self): return self.name+str(self.age) def dream(self): return "你有梦想吗?" #实例化 person_egon = People("egon",10) person_dada = People("dada",34) person_susan = People("susan",34) person_list = [person_dada,person_egon,person_susan] return render(request,"index.html", { "name"

java 循环结构 for while do-while

空扰寡人 提交于 2019-12-30 20:35:59
/* 循环结构 一在某些条件满足的情况下,反复执行特定代码的功能 1语句分类: for循环 while循环 do-while循环 2循环语句组成部分: 1,初始化部分 2,循环条件部分(通常情况下,循环结束都是因为出现false) 3,循环体部分 4,迭代部分 二for循环结构 for(初始化条件;循环条件(必须是Boolean类型);迭代条件){ 循环体 } 执行过程1-2(true)-3-4-2(true)-3-4-’’’’’-2(false)-循环结束 三,for循环中break的使用,大括号中插入break可以在循环条件为true的 情况下终止循环。一般与if-else配合。 */ import java . util . Scanner ; class ForTest { public static void main ( String [ ] args ) { Scanner scan = new Scanner ( System . in ) ; System . out . println ( "请输入要重复的语句" ) ; String word = scan . next ( ) ; System . out . println ( "请输入要重复的次数" ) ; int num = scan . nextInt ( ) ; for ( int i = 1 ;

Linux--awk命令

淺唱寂寞╮ 提交于 2019-12-30 19:04:46
一:awk简介 awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。 awk 是一种很棒的语言,它适合文本处理和报表生成,其语法较为常见,借鉴了某些语言的一些精华,如 C 语言等。在 linux 系统日常处理工作中,发挥很重要的作用,掌握了 awk 将会使你的工作变的高大上。 awk 是三剑客的老大,利剑出鞘,必会不同凡响。 二:使用方法 awk '{pattern + action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。 awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。 通常