Python——控制流程

目录

一、if 判断

1、if语句

二、else语句

三、elif语句

二、循环

1,while循环

2,for循环

三、知识拓展

1,pass语句

 2,循环语句中的else

 


一、if 判断

1、if语句

        几乎所有的语音都有if语句,if语句按照条件选择执行不同的代码。Python的if语句格式如下:

                       if 表达式:

                            语句1

                            语句2

                            ........

        注意示例中 “语句1”  “语句2” 前的缩进(相对于if行有四个空格开头)不能省略。每条if语句的核心都是一个值是“True”或“False”的表达式,这种表达式被称为条件测试。Python根据条件测试的值为“True”或“False”来决定是否执行if语句中的代码。如果条件测试的值为“True”,Python就执行紧跟在if语句后面的代码块;如果值为“False”,Python就忽略这些代码不去执行。

例:

        

        从执行结果来看,if语句中的代码快被执行,说明“x”的条件测试值是“True”。如果把“x”改成“False”:

        这个例子的执行结果是没有输出的,说明代码中的print语句没有被执行,表明“ if ”后的条件测试值是“False”。

        “ if ”后的条件测试不只支持布尔类型,后面也可以使用数字,例如:

        从执行结果来看,条件测试适用于数字。如果使用数字来作为“ if ”的判断条件,在只有数字“0”的条件测试结果是“False” 例如:

        这个例子的执行结果是没有输出的,说明代码块中的print语句没有被执行,表明“ if ”后的条件测试值是“False”.

        如果条件测试的内容是字符串,则只有字符串是空字符串时条件测试的结果是“False”,其余字符串都是“True”。 

        这个例子的执行结果是没有输出的,说明代码块中的print语句没有被执行,表明“ if ”后的条件测试值是“False”。

        不单是字符串,条件测试中空列表、空元组、空字典也是“False”。

        从这个例子的执行结果可以看出:字典、列表和元组类型的数据,当它们不包括任何元素时,条件测试的结果是“False”,不执行if语句的代码;当它们有包含任何元素时,条件测试的结果是“True”,执行if语句中的代码。

        还有一种情况的条件测试为“False”,那就是“None”。当“ if ”的条件是“None”时,也不会执行if语句中的代码。

二、else语句

        else语句很好理解,当“ if ”的条件测试为“False”的时候执行“else”后的语句,“else”是“if”语句的可选项,并且不一定非要有“else”。注意“else”不能单独出现,必须跟在“if”后面。

例如:

        从这个例子可以看出:数字“0”的条件测试是“False”,所以“ if ”后的语句不会被执行,但是“else”后的语句正确执行了。

三、elif语句

        有时候可能会需要测试多个条件,单纯的“if...else”并不能满足所有需求,这种情况下就可以使用“elif”。“elif”和“else”一样都是“if”的可选项,并且“elif”也不能单独出现,必须跟在“if”后面。

例如:

        从执行结果看,代码执行了第一个“elif”后面的语句。虽然“x”等于“89”满足“x>80”和“x>60”,但是“if...elif”只会执行第一条条件测试是“Frue”的语句,其他内容都会被忽视。

注意:如果有“elif”,则“else”必须在最后,不能插在“elif”之前。

        从执行结果看到,“x”变量不满足“if”和“elif”的条件,所以执行了“else”后的语句。 

二、循环

1,while循环

        while循环是python中最简单的循环语句,它的语法格式如下:

                       while表达式:

                            语句1

                            语句2

                            ........

        注意示例中“语句1” “语句2”前的缩进(相对于while行有四个空格开头)不能省略。

执行流程如下:

        while语句后的表达式和if语句后的表达式一样,都是条件测试。只有条件测试的结果是“Frue”时才会执行“while”循环体内的语句。

例如:

        执行结果是打印出1~10的数字。注意“x+=1”不能省略,否则会产生无限循环或者死循环,因为如果没有“x+=1”,那么变量“x”将永远小于“10”,while语句中的“x<=0”条件测试则永远是“True”,那么“print(x)”将会一直执行下去,最终可能导致系统资源被耗尽。

2,for循环

        for循环有个比while循环更丰富的作用,它的语法格式如下:

                        for变量 in 序列 :

                            语句1

                            语句2

                            ........

执行流程如下:

        语法格式中的序列可以是列表、元组等可迭代对象。

例如:

        从执行结果中可以看到,变量“x”逐一遍历“in”后元组里的每一个元素,遍历完所有元素之后结束循环。

        在日常使用中我们经常会遇到需要多次执行或者输出的例子,例如:

        执行结果输出了三个“Hello World!”。如果我们需要输入100个或者1000个“Hello World!”该怎么办呢?当然,我们可以写一个很长的列表,里面包含了1000个元素。不过大可不必这么麻烦,python中内置的range函数可以帮助我们处理此类问题。

        range有两种使用方法,第一种是给定一个数字,例如10,range就会返回一个类似列表(其实并不是列表,是一个可迭代对象)

例如:

        执行结果输出了从“0”到“9”的10个数字,这是range函数的一种用法。

        range的第二种用法是给定range函数的开始和结束数字,并且定义增长布进(如果不定义则默认是1)。

例如:

        出结果可以看出,程序输

        我们同样可以设置步进来限出了9个数字(注意:“10”并不会输出),说明range输出的是从“1”到小于“10”的数字。制生成的序列的步长,例如:

        从执行结果可以看出,程序输出了步长为2、从1到9的数字序列,说明range函数输出了我们期望的结果。

3,break和continue语句

        前面介绍中的循环都会按部就班地一直执行下去,直到不满足条件,退出循环体。有时候可能情况比较复杂,需要跳过或者退出循环体,这时候break和continue语句就派上用场了。break的作用是立刻退出循环体,直接结束循环。例如:

        这个循环体中添加了if语句来判断变量“ i ”是否大于5,如果大于5则不再执行之后的循环。从执行结果看,break成功的退出了循环体。

        continue的作用和break有点类似,不过continue并不会退出循环体,而是跳过当前的循环体执行之后的循环,例如:

        从执行结果中发现没有数字“5”,说明continue被执行,跳过了后面的print语句。

三、知识拓展

1,pass语句

        在python中的pass语句是空语句,其作用是保持程序结构的完整性。pass不做任何操作,一般用作占位语句。例如:

        从执行结果可以看出,pass并没有做任何操作。那为什么需要这样的语句呢?这不得不从python的缩进说起。

        缩进在python中至关重要。在python中,行首的空格用来决定逻辑行的缩进层次,从而决定语句的分组。这意味着同一层次的语句必须要有相同的缩进,每一组这样的语句称为一个块。前面的if、while、else和for等都已经遇到了一行结尾是“:”、后一行必须是有行首空白的情况(一般需要相对于前一行对四个空格)。不止是流程控制,在后续章节要讲到的函数、类等语法中也会用到缩进(行首空格,一般一组缩进四个空格)。在python中,如果语法的缩进不正确,就会引起程序出错,例如:

        python的这个信息告诉我们这个程序的语法是无效的,也就是说程序的编写不是正确的,所以不能随意地开始新的语法块。

        那pass的作用是什么呢?正如本节开头所讲的,其作用就是“保持程序结构的完整性”。因为流程控制之后的一行必须是有缩进的语法块,然而有时候可能并不需要执行什么东西或者在编写程序的时候还没有想好要如何编写执行内容,这时候为了保持程序结构的完整性,就需要用到pass在占位。

例如:

        python解释器期望能有一个缩进的语法块,但是由于没有任何语法提供,所以程序无法执行,这时候就可以使用pass来占位;

        使用pass占位后,程序就可以顺利执行了,虽然我们可能没有想好要做什么,但是并不影响后续程序的运行。

 2,循环语句中的else

        在python中,不只if可以和else组合,while和for也可以和else组合出现。

        在和while组合出现的else后的代码块,会在while后的条件测试为“False”时执行。

例如:

        从执行结果可以看到,最后一个count为“5”,不满足while后的条件测试,所以就执行了else后的语句。但是需要注意,如果中途break退出循环是不会执行else后的代码块的。

例如:

        可以看到中途break退出循环,else后的代码并没有执行。同样的,for后面组合的else与此情况大同小异,例如:

        可以看到else后的代码块被正确执行了。同样,如果是由于break操作退出的for循环,是不会执行else后的代码块的,例如:

        从执行结果可以看出,由于是break退出的for循环,所以else后的代码块没有被执行。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值