编写高质量代码:改善Python程序的91个建议中文pdf扫描版[54MB]
前言
今天来说下python中的循环。循环的意思是什么,以环形、回路或轨道运行;沿曲折的路线运行;特指运行一周而回到原处。这是百度给出的循环的意思。在python中,就是重复执行你给的指令,直至结束。我们现在看下,在python中,循环就是:while;它有它的规则结构,就是while + 条件(冒号,这个别忘记了。): 意思是,当条件不成立时,不循环。举个例子说明一下:
我们先来说下这个例子的意思,首先,while+条件: 这个已经带入到了代码中,这个代码的意思是当循环10次1的时候 ,跳出循环。先定义了num = 1 那么num 就是1的意思,然后while循环,当Num小于等10 的时候,打印num 的数。break跳出,终止循环。为什么要终止循环,我们来看下不加break的测试结果:
就会无线次一直循环。这就是死循环。为了避免死循环的发生,就加了一个break 。break的用法就是,当你想让上一段循环语句结束时,就可以用到break,那么在break以下的代码,也不会被执行。
上面说到了while的用法。为了巩固这个用法,我们嵌套使用if elif 加上while一起使用看下出来的效果是什么样的。我们有在上一章中说到,if elis是结合一起使用的。那么中间是可以嵌套elif的,再加上循环while,我们来举个例子,说明一下:
这是一个猜年龄的游戏,意思就是,当你猜到输入的年龄是60的时候,终止循环,如果你输入的年龄大于60,提示太大了,如果小于60,提示太小了。我们来逐个看下,每一段代码的意思。首先,我们定义变量,age年龄是60岁。定义它,是为了接下来要猜测年龄做准备。while True :这个意思是无限循环。这个的用法是,如果你所需的条件,等于你所输出的条件是正确的时候,就break,终止循环,否则就是无限循环。(是不是还不太懂,没关系,这个就记住是无限循环的意思。往后看就明白了。)接下来的这一段,user_input_age = int(input('age is :'))意思就是,定义你要输如数字的变量,int,这个解释我在上一章讲过,就是把字符串变成数据时使用。简单理解,就是你要输出的数字。if 判断,如果,user_input_age输入的数字,等于你定义的年龄60的时候,那就打印出来yes,那这个条件就是为真。是正确的,真实的,那么就break,终止循环。elif,再如果,user_input_age> age:这句话意思就是,如果你输出的年龄大于定义的年龄60的时候,那就打印出,太大了。else,其它的,就是小于60的,那就是输出太小了。注意,else,是当while循环后执行,只在break时不执行。意思就是说如果你加了break ,那就终止了,不会再执行了。那么continue的意思呢,跳过当次循环,继续循环的意思。如果你不加continue,就会无限循环,结果就跟上面的111111一样,无限循环你输入的年龄。然后print(‘'END‘')结束。我们来看下这段代码执行的结果:
while True的意思就是,如果你的条件为真了,是正确的结果,你break停止循环了时候,就会进入下一个循环。
我们进一步来说下while使用嵌套循环的方法,嵌套循环,就是循环套循环使用。比如,我们输入数字几,就打出几行几列的#号键:
首先我们先定义好行数:height = int(input('Height:'))
然后 定义好输入的列数:width = int(input('Width:'))
循环条件定义:num_height=1这是行数循环。同理列数循环定义也是1。
用循环方式,当num_height小于等于你的行数。就是小于或者等于你输入的数字。就打印出来#号键,并且加空格。循环num_height +=1的意思意思就是。我一开始定义了unm_height是1,每次都加一循环。但是条件是小于我输入的数字。例如,我输入的数字是个3,那么每次循环加1,第一次循环是1,1小于3,打印出第一个#号,再一次循环,1+1=2,2小于3,打印出第二个#,第三个循环2+1=3,3等于3 打印出第三个#。print ("#",end=" "),这个意思是打印#号键,并且以一个空格分隔开。连着print()就是换行的意思,(结果会看到什么是换行)当一个条件执行完毕,再执行下一个条件,就是说先执行我第一定义的行数。再执行列数。行数执行完毕,同理,列也是一样的意思。我先定义好你即将输入的列数,你输入多少就是多少。然后再用列数每次循环加一。假定也是3,那就是每次循环加1,直到等于3,为止。循环结束。结果就是:
在这就能看到换行的意义了吧。
上面只是简单介绍了嵌套循环的用法,我们可以升级一下,利用*星号键,来组一个倒三角形。我们看下代码,然后解释一下:
根据代码的描述,先定义Line的值,我定义为5,循环line,当line大于0时,我加了一个注释的意思就是打印出来五列*。就是如图的结果:
但是我想要的是第一行是五个,第二行四个,第三行三个,第二行两个,第一行一个。就是:
这样的效果。那第一列出来的是五个,line是不能动的值。那就需要循环套用循环,再写一个循环定义tmp 等于line,就是tmp也是等于5,然后,内循环tmp,并且以一个空格换行的形式输出*号键。tmp= tmp -1的意思是,循环一次外循环的line的值赋予tmp减去一。比如,line是5时,出来五个星,但是line - =1就是每次循环,第一次循环是5个星,当line -=1 时,赋值给到tmp,那么tmp也会减去1.内循环减去1,也就是4。直到,tmp无法大于0,循环结束。
九九乘法表就是套用上面的循环,如图:
这个嵌套循环的意思,跟上面星星的意思是一样的。很简单吧~~~反正我是烧脑了半天~~~~~~ 敬请期待下一集。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对谷谷点程序的支持。
转载请注明:谷谷点程序 » python基础教程之while循环