Python基础概念_4_控制流程
控制流程
5 控制流程
5.1 简介
到目前为止我们所见到的程序,总是有一系列的语句,Python会很忠实地按照它们的顺序执行。如果你想要改变语句的执行顺序,该怎么办呢?比如:根据时间打印“早上好”或者“晚上好”。聪明的你可能已经猜到了。对,通过控制流程语句来实现。在Python 中常用的控制流语句有: if、for 和while
5.2 If语句
a) If语句简介
让我们先从一个轻松的话题开始认识if吧。话说有一位焦急的母亲在为自己的女儿物色男朋友,于是她们之间就有了下面的对话:
…
女儿:多大年纪了?
母亲:26。
女儿:长的帅不帅?
母亲:挺帅的。
女儿:收入高不?
母亲:不算很高,中等情况。
女儿:是公务员不?
母亲:是,在税务局上班呢。
女儿:那好,我去见见。
…
我们看张图吧,这样会更直观:
机智的你会发现这个女孩在不停的做条件判断,直至满足自己的条件才见。所以if语句翻译过来就是如果的意思,也就是判断是否满足某个条件,而else呢则是上个if的反面。比如这里判断年龄是否大于30,那么else自然是小于等于30了。如果再判断则使用elif用一个新的条件再判断。
a) 仅含If语句
>>> salary=10001
>>> if(salary>10000):
... print("老板")
结果:老板
b) If else语句
>>>salary=9999
>>>if(salary>10000):
... print("老板")
... else:
... print("屌丝")
...
结果:屌丝
c) 多层If语句
>>>if stafflevel == 3:# 判断num的值
... print ('老板')
... elifstafflevel == 2:
... print ('经理')
... elifstafflevel == 1:
... print ('员工')
... elifstafflevel < 0:# 值小于零时输出
... print ('员工等级不能小于0')
... else:
... print ('输入条件异常,请检查你的输入')# 条件均不成立时输出
...
结果:老板
5.3 while语句
while翻译过来是当。
“当山峰没有棱角的时候
当河水不再流
当时间停住日夜不分
当天地万物化为虚有
我还是不能和你分手
不能和你分手”
a) 普通while语句
while语句类似if,即可当满足某个条件时执行,不满足时跳出循环。见如下示例:
>>> stafflevel=3
>>> while(stafflevel <6):
... stafflevel+=1
... print("员工等级:"+str(stafflevel))
...
结果:
员工等级:4
员工等级:5
员工等级:6
b) 结合else的while语句
>>> stafflevel=3
>>> while(stafflevel <6):
... stafflevel+=1
... print("员工等级:"+str(stafflevel))
... else:
... print("while循环结束")
...
结果:
员工等级:4
员工等级:5
员工等级:6
while循环结束
5.4 for语句
这里我们举个例子,假设周一到周五是个时间序列,那么每天我们都要周而复始的去上班,只有到周末时才休息。这就是个For循环的例子,流程见下图示意:
>>> for num in range(1,6):
... print("星期"+str(num)+"上班")
...
结果:
星期1上班
星期2上班
星期3上班
星期4上班
星期5上班
for循环另一例
如果你想遍历一个字典里的元素可以这么写:
>>> fruits = ['banana','apple', 'mango']
>>> for fruit in fruits:
... print ('当前水果 :', fruit)
...
结果:
当前水果 : banana
当前水果 : apple
当前水果 : mango
5.5 break语句
Break语句是用来终止循环的,可以使用在for循环或者while循环里。
下面我给个一对情侣因为说谎分手的例子,话说一个女生很在意自己男朋友是否说话,但是不能接受一而再再而三的撒谎,所以当她男朋友说了第5次说谎时,她终于提出了分手。如下就是代码示例:
>>> for num inrange(1,8):
... print("第"+str(num)+"次撒谎")
... if (num==5):
... print("已经第5次说谎了,对不起我们分手吧!")
... break
...
第1次撒谎
第2次撒谎
第3次撒谎
第4次撒谎
第5次撒谎
已经第5次说谎了,对不起我们分手吧!
注:本来这位女生的男朋友还准备撒谎7次了,现在看来第5次就GameOver了。
5.6continue语句
我们还来举个女生选男朋友的例子吧,这次通过工资来判断,发现月工资小于10000的直接放弃掉,只要高于这个数的。程序见下:
>>> for num inrange(9000,13000,1000):
... print("当前工资:"+str(num))
... if(num<=10000):
... print("工资太低了,"+str(num)+"不想见")
... continue
... print("执行不到的代码段!")
... print("这个男的工资"+str(num)+"差不多,我们见见吧!")
...
结果:
当前工资:9000
工资太低了,9000不想见
当前工资:10000
工资太低了,10000不想见
当前工资:11000
这个男的工资11000差不多,我们见见吧!
当前工资:12000
这个男的工资12000差不多,我们见见吧!
注:
1) 黄色高亮处不会被执行到,这是因为当num不断增加到11000时并不满足num<=10000的条件,此时会跳转到外层的for循环,但不会执行跟continue一级的后面的语句。
2) 初学者往往会搞不清楚break和continue的区别,其实很简单,break是结束整个外层循环,而continue在结束了自己条件后外层的循环还会继续执行。当然两者也有共同点就是跟他们一级的语句将永远不会被执行到。
注意看上面例子你会发现for循环从9000一直到12000,当然这里的步长是1000。也就是说没中断。但是如果我改成break程序,你会发现满足break里的条件时,for循环会立刻终止,也就是到10000时就停了。
>>> for num inrange(9000,13000,1000):
... print("当前工资:"+str(num))
... if(num>=10000):
... print("工资太高了,"+str(num)+"不想见")
... break
... print("执行不到的代码段!")
... print("这个男的工资"+str(num)+"比较低,我们见见吧!")
...
5.7 总结
通过本章的学习我们已经掌握了如何使用三种控制流程的语句: if 、while 和for 以及控制循环的break 和continue 语句。它们是Python 代码段中最常用的部分。接下来,我们将学习如何创建和使用函数。