Python 中的分支结构、循环结构、流程控制语句

Python 中的分支结构

任何一个复杂的系统都是由三种基本结构组成:顺序结构、分支结构、循环结构。其中 顺序结构最简单,程序从上到下依次执行,就如同生活中一条笔直的大马路,一路畅行无阻; 分支结构是指当程序执行到某步时,需根据实际情况选择性的执行某部分代码,就如同生活 中的十字路口,需要根据具体情况选择走哪条路,每次只能选择一条路,不可能同时走多条 路;循环结构是指重复执行某些代码,直到条件不满足为止,就如同生活中的盘山公路,一 圈圈绕行,直到到达目的地为止。

        接下来主要给大家介绍分支结构,Python中的分支结构大致可以分为三种:单分支if 语句、双分支if...else语句以及多分支if...elif...else语句。

单向分支-if语句

单向if语句只有if没有else,只针对满足条件的情况做一些额外操作,条件不满足时 什么都不做。

注意:与其他编程语言通过大括号的嵌套控制语句间的层次关系不同,Python 中通过 缩进来控制语句之间的层次关系,同一层次的代码缩进相同。

双向分支-if...else 语句

双向if...else 语句通常用于有两种选择并且每种选择执行不同操作的情景。具 体流程和写法如下。

多分支-if...elif...else 语句

多分支 if...elif...else 语句通常用于有多种选择并且每种选择执行不同操作 的情景。只有当前面的条件都不符合时,才会执行后面的判断,只要有一个地方符合 要求,则停止进一步的判断。具体流程和写法如下。

分支结构的嵌套

此外,Python 中还支持分支结构的嵌套,即在分支结构的语句块中还可以包含 分支结构,用于进一步判断。此时,要注意if和else之间的匹配关系。主要通过缩 进查看条件语句的层次关系。 理论上说, 嵌套的层次没有限制, 但实际编程中,应尽可能避免多层次嵌套。

上面案例,既可以通过多分支语句实现也可以通过分支的嵌套实现,哪一种会比 较好呢?对于多分支语句来说,结构简单,每次都是从第一个条件开始进行判断,对 于满足最后一个条件的情景可能需要经过多次判断;而通过分支的嵌套的话,有点类 似于二叉查找,需要判断的次数会大大减少,但结构稍微复杂一些。Python程序设计 时,建议尽量少用嵌套。

条件表达式

为了简化简单的条件判断,python中提供了条件表达式, 语法结构如下: 表达式1 if 布尔表达式 else 表达式2

  • 如果布尔表达式为 True, 那么表达式的结果就是表达式1;否则, 表达式 的结果就是表达式2。 
  • 若想将变量number1 和 number2 中较大的值赋给 max, 可以使用下面的条 件表达式简洁地完成。

max = number1 if number1 > number2 else number2

Python 中的循环结构

循环结构主要用于需要重复执行某些操作的场景,通过循环可以大大降低开发人员的 工作量,也是利用程序提升工作效率的优势之一。对于循环,主要把握以下几点:什么时 候开始执行循环?什么时候循环结束?需要重复操作的内容是什么?每次操作后,有什么 变化?等。

Python 中实现循环结构的语句主要有两种:while 语句 和 for 语句。

while 循环

while 循环是一种判别式循环,当条件为 True 时,执行循环体;当条件为 False 时结束循环,执行循环后的操作。具体语法规则如下。

for 循环

for 循环是一种遍历式循环,for 循环后面通常跟一个可迭代对象,依次对每个 元素执行相同的操作,直到所有元素都遍历完才结束。具体语法规则如下:

range()函数是 Python 自带的内置函数,用于生成整数数字序列,可传递三个参 数:range(start,stop,step),其中 start 参数表示起始数字,默认为0;stop表示 终止数字,但不包含该数字,该参数必须传递;step表示步长,表示两个相邻数字之 间的差。最终生成的数字序列为[start, start+step, ..., start+n*step], 其中 start+n*step < stop, start + (n+1)*step >= stop。例如 range(1,5,2)生成的数 字序列为[1,3]。

循环结构嵌套

Python 中支持循环的嵌套,while 循环的循环体中可以继续嵌套 while 循环或for 循环,for 循环的循环体中也可以继续嵌套 while循环和for循环。在实际应用 中经常会用到循环的嵌套,但为了程序的可读性,一般建议嵌套层次不宜超过 3层。

与其他编程语言不同,Python中循环语句后面可以带有else子句,用于在循环 正常结束后做一些额外操作。所谓的正常结束是指执行到循环条件不满足或遍历完可 迭代对象中的每个元素。非正常结束主要是指循环执行过程中遇到break语句,提前 结束循环,break语句的相关内容将在下一篇文章流程控制语句中进行介绍。

Python 中的流程控制语句

在执行循环的过程中,如果想提前退出循环或跳过某一次循环体则可借助于 流程控制关键词。Python 中提供了两个流程控制关键词为:break 和 continue。 break 的含义为中断,表示退出当前循环结构,虽然此时仍然满足循环条件; continue 的含义为继续,表示跳过本次循环,继续下一次循环,即只是跳过循环 结构中continue 之后的所有语句,其他语句仍然继续执行,直到循环执行结束。

下面通过一个简单的例子说明二者之间的区别。

对于左边的代码而言,依次取出1到10之间的整数,判断该整数是否能够 被3整除,如果能够被3整除,则退出循环;如果不能被3整除,则进行叠加, 最终sum的值为1+2,结果为3。

对于右边的代码而言,依次取出1到10之间的整数,判断该整数是否能够 被3整除,如果能够被3整除,则跳过后面的语句,直接进入下一次循环;如果 不能被3整除,则进行叠加,最终sum的值为1+2+4+5+7+8+10,结果为37。

注意:break和continue 关键词只能用于循环结构,不能单独使用。

通过break语句退出循环后,将不执行循环语句后面的else语句。阅读下面 两段代码,并思考程序执行结果。

对于左边的代码块,通过break退出循环,结果只会打印出sum=3;

        对于右边的代码块,可以正常执行完循环,因此会执行else语句,最终结果 会先打印出 i=10,然后换行,再打印出 sum=37。

        至此,循环结构的相关内容介绍完毕,下面一起做一个综合案例,具体要求 和实现效果如下。

        通过观察效果可知,如果输入的是偶数,则上下行数是一样的;如果输入的 奇数,则上面比下面多一行。可定义一个变量如up用于保存上面的行数。下面 的行数刚好是输入的行数的一半。然后依次打印上半部分和下半部分即可,参考 代码如下。

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值