while和for都可以使程序重复执行某一段代码(又称作循环体),区别是for循环用于针对集合中的每一个元素都一个代码块,而while循环在表达式为True的情况下会不断地执行,直到指定条件不满足为止。
1、while循环简介
while在英语中的解释是:当…时候
在Python中的语法是:
意味着,当表达式为True的时候,程序会一直执行循环体代码,直至表达式为False。
1.1使用while循环
下面的while循环从1数到5:
首先定义了变量num并给其初始值1。接下来的while循环被设置成这样:只要num小于或等于5,就接着运行循环体代码。
循环体中的代码打印变量num的值,再使用代码num+=1(代码num=num+1的简写)将其值加1。
只要满足条件num<=5,python就接着运行这个循环。由于1小于5,因此Python打印1,并将num加1,使其为2;由于2小于5,因此Python打印2,并将num加1,使其为3,以此类推。一旦num大于5,循环将停止,整个程序也将结束运行。
运行结果:
提问:已经有for循环了,为啥又搞出个while循环?
可以简单的这样理解:for循环主要用于那些我们知道循环次数的循环,如,遍历整个列表,我们知道循环次数就是列表中元素的个数。而while循环主要用于那些我们不知道具体循环多少次的循环,人们常说人生就像一个程序,写成代码的话,我们人生中发生的所有事情都在while 活着:循环的循环体中,我们是不知道一个人到底能活多长时间的,只能用while。
当然,有些循环用for和while都可以实现。
其实,你每天使用的程序很可能就包含着while循环。例如,游戏程序就在一个大的while循环中,在玩家退出时停止运行。用while循环能让程序在用户没有让它停止之前一直运行,这点是for循环做不到的。
1.2使用break退出循环
如果你要立即退出while循环,不在运行循环体中余下的代码,也不管while后面跟的表达式是真是假,可以使用break语句。
例如,我们写个点菜程序,让用户输入TA想吃的菜。在这个程序中,我们可以在用户输入’quit’后使用break语句立即退出while循环:
我们将True作为while的循环判断条件,因此这程序理论上会不断运行下去(在没有break语句的情况下)。
这个程序不断让用户输入想吃的菜名,直到用户输入’quit’,程序执行break语句,退出循环。
需要注意,break语句的作用就是跳出循环(一层循环),这在for循环体中也是适用的哦。
1.3使用continue退出循环
continue的意思是继续。
Python中使用continue语句跳过当前循环体中的剩余语句,然后继续进行下一轮循环。
注意:continue和break的区别在于,前者跳出当前(本次)循环,而后者跳出整个循环。二者既可用于while也可用于for。
举个栗子,我们来打印从1~10中的奇数。
先定义变量current_number并赋初值0,由于它小于10,Python进入while循环。
进入循环后,变量current_number在原数字上加1。
接下来,if语句检查current_number与2的求模运算结果(之前文章说过,结果为0说明是偶数,不为0说明是奇数)。
如果结果为0(偶数),就执行continue语句,Python会忽略余下的代码,并返回到循环的开头。 如果结果不为0(奇数),就执行循环体中剩余的代码,Python将会把这个数字打印出来。