Python语言基础分支语句、循环语句ppt课件.ppt
2023/3/11,1,Python 基础分支与循环,2023/3/11,2,目 录,程序基本结构 分支结构 循环结构 布尔表达式 练习 总结,2023/3/11,3,程序设计基本结构,任何算法(程序)都可以由顺序结构、选择结构和循环结构这三种基本结构组合来实现。,2023/3/11,4,顺序结构,顺序结构中,按语句的自然顺序一次执行。用顺序结构描述将华氏温度F转换成摄氏温度C的流程。算法:C=5/9*(F-32),2023/3/11,5,选择结构,2023/3/11,6,循环结构,2023/3/11,7,流程图-表示算法,例:求给定半径R的圆面积和圆周长这是一个数学问题。算法:,2023/3/11,8,流程图-表示算法,例:求给定半径R的绝对值。算法:这是分支程序结构,2023/3/11,9,流程图-表示算法,例:给定K值,求1到K,连加和。Sum里保存:1+2+3+K的连加和。重复进行某种运算,运算对象有规律地变化。采用循环结构。,2023/3/11,10,目 录,程序基本结构 分支结构 循环结构 布尔表达式 总结,2023/3/11,11,生活中的判断,2023/3/11,12,PM2.5指数分级例子,程序功能的IPO模式描述为:输入:接受外部输入PM2.5值处理:空气质量分级算法输出:打印空气质量提醒,2023/3/11,13,PM2.5指数分级例子-流程图,2023/3/11,14,pm25.py,2023/3/11,15,if语句格式,语句格式如下 其中 是条件表达式,是一个或多个语句序列 先判断 条件:True,则执行,再转向下一条语句 False,则直接跳过,转向下一条语句,2023/3/11,16,说明:比较运算符,2023/3/11,17,说明:逻辑运算符,2023/3/11,18,二分支决策,二分支语法结构如下:Python解释器首先评估 如果是真的,if下面的语句被执行;如果是假的,else下面的语句被执行。,2023/3/11,19,二分支决策示例,注意:冒号不能省;if和else对齐,并且前面不能有空格。,2023/3/11,20,多分支决策,多分支决策是解决复杂问题的重要手段之一 一个三分支决策可以由两个二分支结构嵌套实现 使用if-else描述多分支决策时,实现更多分支需要更多嵌套,影响程序的易读性 Python使用if-elif-else描述多分支决策,简化分支结构的嵌套问题,2023/3/11,21,多分支决策,使用if-elif-else描述多分支决策:Python轮流评估每个条件,来寻找条件为True的分支,并执行该分支下的语句;如果没有任何条件成立,else下面的语句被执行,else子句是可选的。,2023/3/11,22,PM2.5指数分级例子(版本升级),使用if-elif-else结构改进之前的程序:,2023/3/11,23,PM2.5指数分级例子(采用小于条件),2023/3/11,24,如果按照分数划定结果:90分或以上:excellent 80分或以上:good 60分或以上:passed 60分以下:failed请编写程序根据分数打印结果。,巩固练习,2023/3/11,25,猜拳游戏,2023/3/11,26,试一试,编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。,2023/3/11,27,目 录,程序基本结构 分支结构 循环结构 布尔表达式 总结,2023/3/11,28,生活中的循环,2023/3/11,29,软件开发中循环的使用场景,跟媳妇承认错误,说一万遍“媳妇儿,我错了!”print“媳妇儿,我错了!”print“媳妇儿,我错了!”print“媳妇儿,我错了!”(还有997遍)使用循环,一句话搞定i=0while i 10000:print“媳妇儿,我错了!”i+=1,2023/3/11,30,一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环,循环结构,2023/3/11,31,循环结构回顾,2023/3/11,32,for循环,for 循环作为编程语言中最强力的特征之一 Python可以使用for语句循环遍历整个序列的值 for循环所做的概括为一句话:于 其中的每一个元素,做事情,2023/3/11,33,for循环,在for循环中,循环变量var遍历了队列中的每一个值,循环的语句体为每个值执行一次。,2023/3/11,34,for循环,2023/3/11,35,for循环,为了更深入了解for循环,试着思考下面这个问题,如何打印出这样的结果?1+1=22+1=310+1=11 内置函数-range(),2023/3/11,36,2023/3/11,37,for循环-求平均数,平均数计算程序的IPO如下:输入:待输入数字个数,数字处理:平均数算法输出:平均数 通用设计方案:输入数字的个数n将sum初始化为0循环n次:输入数字x将x加入sum中将sum/n作为平均数输出出来,2023/3/11,38,for循环-代码,2023/3/11,39,for循环-执行,以下是程序的执行结果:,2023/3/11,40,for循环-缺点,程序开始时必须提供输入数字总数 大规模数字求平均值需要用户首先确定个数 for循环是需要提供固定循环次数的循环方式 Python提供了另一种循环模式即无限循环,不需要提前知道循环次数,即我们提到的当型循环也叫条件循环,2023/3/11,41,for与if相结合,如何实现这样一个程序:歌曲列表中有三首歌“Holy Diver,Thunderstruck,Rebel Rebel”,当播放到每首时,分别显示歌手名字“Dio,AC/CD,Divid Bowie”?,2023/3/11,42,嵌套循环,编程中还有一种常见的循环,被称之为嵌套循环,其实这种循环并不复杂还非常实用。例如:“九九乘法表”,2023/3/11,43,嵌套循环,例:“九九乘法表”原理:最外层的循环依次是将数值19存储到变量i中,变量i每取一次值,内层循环就要依次将19中存储在变量j中,最后展示当前的i,j,与i*j的结果。,2023/3/11,44,while循环,语法:while语句while语句中是布尔表达式 循环体是一条或多条语句当条件为真时,循环体重复执行当条件为假时,循环终止 在while循环中,条件总是在循环顶部被判断,即在循环体执行之前,这种结构又被称为前测循环,只要条件成立,就一直做,2023/3/11,45,while循环,下面是使用while循环完成从0到10的求和打印平均值的例子:如果循环体忘记累加i,条件判断一直为真,循环体将一直执行,这就是所谓的死循环。这时通常使用+c来终止一个程序,2023/3/11,46,for/while中的else、break用法,break 语句跳出最内层的for/while循环,2023/3/11,47,for/while中的continue用法,continue 语句,其作用为结束本次循环、即跳出循环体中下面尚未执行的语句,对于while循环,继续求解循环条件。而对于for循环程序流程接着遍历循环列表。continue和break语句的区别是:continue语句只结束本次循环,而不终止整个循环的执行。break 语句结束整个循环过程,不再判断执行循环的条件是否成立,2023/3/11,48,for/while中的else用法,语句与循环的搭配使用,else:后的表达式在for循环列表遍历完毕后或while条件语句不满足的情况下执行,例如:,2023/3/11,49,目 录,程序基本结构 分支结构 循环结构 布尔表达式 总结,50,布尔表达式,条件语句和循环语句都是用布尔表达式作为条件 布尔值为真或假,以False和True表示 前面经常使用布尔表达式比较两个值,如:while x=0,51,布尔操作符的引入,简单条件在复杂决策情况下存在一定缺陷 例如,确定两个点是否在同一位置,即是否有相同的x坐标和y坐标,下面是处理代码片段:,2023/3/11,52,布尔操作符,布尔操作符:and,or和not 布尔运算符and和or用于组合两个布尔表达式,并产生一个布尔结果 and or not 运算符是一个一元运算符,用来计算一个布尔表达式的反not,2023/3/11,53,布尔操作结果真值表,2023/3/11,54,布尔操作符,使用布尔运算符,可以建立任意复杂的布尔表达式例如:a or not b and c Python中布尔运算符的优先级,从高到低依次是 not、and、or 所以上面的表达式等于如下这个带括号的版本:(a or(not b)and c),2023/3/11,55,布尔操作符,使用and操作符改进之前比较两个点相同的例子,56,下面哪些是港台女明星?,57,判断闰年,58,思考题,59,练习题,编程,解决猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子。(迭代法),60,本章小节,程序控制结构-流程图分支语句-ifelif.else循环语句:forwhile布尔表达式 True False,61,作业:,1.编写程序找出100-1000之间的水仙花数。提示:水仙花数是指一个 n 位数(n3),它的每个位上的数字的 n 次幂之和等于它本身。(例如:153=13+53+33)2.编程完成输入一个整数,如果为奇数那么sum=1+1/3+.+1/n 如果为偶数那么 sum=1/2+1/4+.+1/n,62,Thank You!,