Python基础概念_4_控制流程

控制流程

5 控制流程

5.1 简介

到目前为止我们所见到的程序,总是有一系列的语句,Python会很忠实地按照它们的顺序执行。如果你想要改变语句的执行顺序,该怎么办呢?比如:根据时间打印“早上好”或者“晚上好”。聪明的你可能已经猜到了。对,通过控制流程语句来实现。在Python 中常用的控制流语句有: if、for 和while

 

5.2 If语句

a) If语句简介

让我们先从一个轻松的话题开始认识if吧。话说有一位焦急的母亲在为自己的女儿物色男朋友,于是她们之间就有了下面的对话:

            …

女儿:多大年纪了?

      母亲:26。

      女儿:长的帅不帅?

      母亲:挺帅的。

      女儿:收入高不?

  母亲:不算很高,中等情况。

  女儿:是公务员不?

  母亲:是,在税务局上班呢。

  女儿:那好,我去见见。

   …

我们看张图吧,这样会更直观:

Python基础概念_4_控制流程

机智的你会发现这个女孩在不停的做条件判断,直至满足自己的条件才见。所以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循环的例子,流程见下图示意:

Python基础概念_4_控制流程


>>> 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 代码段中最常用的部分。接下来,我们将学习如何创建和使用函数。