Python循环的本质就是一段代码懒得重复写 程序中的循环概念非常容易理解,一段相似的代码不想重复去写,然后让程序去完成这个操作就是循环。例如从1加到100,如果你依次去加会发现,代码又臭又长,最好的写法当然是让程序通过循环依次去累加。for循环 for循环可以将对象中元素进行遍历(也叫迭代)操作,每次遍历都可以对元素进行相应的处理,截止到本篇博客,可遍历(迭代)对象目前为列表类型。 for循环的语法格式如下:foriteminmylist(可迭代对象):for代码块 上述代码中的item就是每次循环得到的对象,即可迭代对象里面的每个值。 这里最重要的一个概念是可迭代对象(iterableobject),英文你也需要记住,后面经常用到。 可迭代对象包含的类型非常多,例如有列表、元组、字典与集合,除了列表以外其它的内容将在后面进行学习。for循环基本使用 学习列表之后,对于for循环你需要建立一个基本的概念就是for循环可以依次获取到列表中的每一项,注意是依次获取。 编写代码的时候与if语句一样要注意缩进。 接下来通过for循环打印列表中每一项。mylist〔apple,orange,banana,pear〕foriteminmylist:print(item) for循环语句中只要缩进一致,可以由多行代码构成,例如:mylist〔apple,orange,banana,pear〕foriteminmylist:print(输出一个水果)print(item)for循环嵌套if判断语句 for循环里面可以是多段代码,那这样其实也是可以嵌套if语句的,具体写法可以参考:mylist〔1,2,3,4,5,6,7〕foriteminmylist:ifitem3:print(该元素比3大)print(该元素是:,item) 上述代码可以判断当列表中的元素大于3的时候,输出if语句中的内容,你可以尝试补全else语句。range函数 在Python中可以通过range函数生成一个等差序列,这个等差序列就是一个可迭代对象,如果使用type函数查看对象类型会发现range函数生成的对象类型是range,具体代码如下:myrangerange(4)print(myrange)print(type(myrange)) 输出结果为:range(0,4)classrange 可以看到range函数生成的是一个range对象,上文中用到了range函数,语法格式为range(4),通用的语法格式如下:range(start,stop,step) 其中只有stop是必填项,step默认值是1,如果省略start默认表示从0到stop1。具体运行下述代码即可清楚。myrange1range(4)foriinmyrange1:print(i)print(10)myrange2range(1,4)foriinmyrange2:print(i)print(10)myrange3range(1,6,2)foriinmyrange3:print(i) 输出结果如下,我们都是使用for循环语句进行的输出,通过list函数也可以。0123123135 range函数在后续的编程中属于常用函数,很多场景下都需要借助它生成一个等差序列,所以该函数请牢牢掌握。所谓掌握的意思就是现在你需要好好的打一打代码。for循环补充知识for循环嵌套 一个循环中的代码块嵌套另一个循环称为循环的嵌套,在编写循环嵌套代码的时候需要注意。 代码块的缩进一定要留意,核对好代码块属于哪个for循环 解析来是一个经典案例,当年橡皮擦学习的时候就在这里废了很大力气,一直到期末考试也没弄明白,入门阶段这应该比较难理解的程序了,通过Python输出一个九九乘法表。foriinrange(1,10):forjinrange(1,10):print(dd3d(i,j,ij),end)print() 代码运行之后如下图所示: 这个程序包含了for循环,for循环嵌套,格式化输出字符串,还有不同级别的缩进。 循环在执行的时候,你可以先这么理解,外层循环转1遍,内层循环跑1圈。 这句话的含义初学到这个阶段,很难理解,这是啥意思?很多教材可能会写流程图,告诉你分支怎么走,怎么走。很费劲,在橡皮擦看来这是个顿悟的事情。 在上述代码中标记两条线。 外层循环就是说的最上面的循环,它循环一次,里面的循环,就是包含变量j的那个for循环,要循环1圈,就是都循环一遍。 那结论就出来了。当i1的时候,j从1一直变到10,然后在输出一个print();当i2的时候,i还是要从1变到10,然后在输出一个print();当i3的时候。。。,然后在输出一个print()i4的时候,然后在输出一个print() 当i9的时候,内层循环循环完最后一圈。所有的循环都运行完毕,结束该程序。 特别说明一下print函数输出的时候,默认会带一个,之前的课程已经学习了,该符号代表换行。如果想去掉print函数自带的换行符,需要使用end参数,即print(待输出内容,end)。 放心,虽然我详细的说了一遍流程,能悟了的同学就地就悟了,看不懂还是看不懂,这个地方确实很难(难吗?),不过不用担心,随着写代码越来越多,慢慢的你就会了,不会写这个也不影响后续的学习,总之多写两遍就懂了。break终止循环 终止循环你就这么理解,当满足某个条件的时候,我不想循环了,这就是break的使用场景,当满足某个条件这肯定用到的是if语句。 例如,当循环一个列表的时候,如果出现一个大于3的数字,那终止循环,代码如下:foriinrange(1,10):ifi3:print(出现大于3的数字,终止循环)breakcontinue继续循环 continue与break类似,都是当满足某个条件时,要做的事情,只不过程序碰到continue关键字,不是终止循环,而是进入下一次循环,当前循环不管还剩下什么工作,不做了。foriinrange(0,5):ifi3:continueprint(当前数字为:,i) 上述代码中在for循环存在一个if判断,当i3的时候,也就是列表中数字大于3,直接进入下一次循环,这样导致一个事情就是在循环中发现比3大的数字之后,print就不会执行了,所以运行代码会发现下述结果,只显示小于等于3的数字。当前数字为:0当前数字为:1当前数字为:2当前数字为:3for。。。else循环 for。。。else循环是Python中一种特定的语法结构,大白话就是当for循环执行完毕了就执行else。很多时候大白话能理解了,你能用来描述清楚这个是干啥,这个知识点其实已经掌握了,初学阶段没必要咬文嚼字的。 例如测试下述代码:foriinrange(0,5):ifi3:continueprint(当前数字为:,i)else:print(不管上面的for循环干了啥,我都要执行一次) 在这里其实有个知识点需要补充下,就是代码配对的问题,啥叫配对,if和else就是一对,为什么会有这种说法呢,参见下述代码:if条件:passif条件:passelse:pass pass表示占位,在Python中是支持该关键字的,就是还没想清楚这里写啥代码,先弄个单词放着占住位置。 上面的代码出现了两个if和一个else,一定要注意,else和最近的if是一对,最上面的if就是一个普通的if。这种问题在代码嵌套的时候会更加有意思。if条件:passif条件:if条件:passelse:passelse:pass 依据缩进关系,你要找好if与else哪个是一对显得非常重要了。肉眼看不出来就实际敲敲键盘。 综合刚学习的内容,现在你知道如何对forelse进行配对了吗?while循环 while循环也是Python中的一种循环语法,不过这种循环很容易搞成死循环,就是一直循环下去到电脑崩溃,死循环有坏处但也有它的应用场景,后面咱也会学习到。 while循环的语法格式如下:while条件:代码块 格式中条件非常重要,这个条件运算之后需要判断真假,为真(True)才会进入到while中的代码块运行程序。while循环的经典应用 while循环除了语法结构与for循环有差异以外,很多地方基本一致,接下来完成一个通过while循环实现的经典案例猜数字,这个勉强算是一个游戏。最终的答案为12,其实可以用随机数answer12用户猜的数字guess0条件为判断guess不等于answerwhileguess!answer:guessint(input(请输入一个1100之间的数字:))ifguessanswer:print(你的数字大了)elifguessanswer:print(你的数字小了)else:print(恭喜猜对,数字为12) 该案例虽然小,但是整合了很多之前学过的知识,例如input获取用户输入,int将字符串转换成整数,if。。。elif。。。else语句等内容,越是简单的知识点在后续的课程中出现越频繁,一定要注意基础最重要。while其他说明 while循环的使用与for循环基本一致,很多时候你甚至可以看成是一回事。因为break与continue语句同样适用于while循环,这里不再做重复知识点的说明,后面进入复杂编码的时候,自然可以掌握。这篇博客的总结 循环也属于Python中的基本语法结构,分支与循环学习完毕之后,在加上最基本的顺序执行,那对于编程来说已经足够完成很多任务了,你也可以在想想,现实世界还有没有其它解决问题的路径方式,如果得到的答案是没有,其实程序开发也就这点事儿了。 不过我也是从新手走来,现在看这些知识soeasy,但是第一次学习的时候,还是发出了这是啥,咋回事,怎么就实现了的灵魂问题,不用太担心,眼睛停下,手动起来,敲一敲键盘就可以了。 编程没有难点,难的是按键盘的速度。 本篇讲了range函数,但是查理省略了列表生成器部分因为这个阶段学习有点难了,后面的课程会将其补齐。 最后一碗毒鸡汤 没有钱包的充实,哪来内心的宁静。O()O哈哈