资源预览内容
第1页 / 共62页
第2页 / 共62页
第3页 / 共62页
第4页 / 共62页
第5页 / 共62页
第6页 / 共62页
第7页 / 共62页
第8页 / 共62页
第9页 / 共62页
第10页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Python Python Python Python 基础基础基础基础分支与循环分支与循环分支与循环分支与循环2024/9/211目目 录录u 程序基本结构程序基本结构u 分支结构分支结构u 循环结构循环结构u 布尔表达式布尔表达式u 练习练习u 总结总结2024/9/212程序设计基本结构程序设计基本结构n 任何算法任何算法( (程序程序) )都可以由顺序结构、选择结构和循环结构这三种基本结都可以由顺序结构、选择结构和循环结构这三种基本结构组合来实现。构组合来实现。2024/9/213顺序结构顺序结构n顺序结构中,按语句的自然顺序一次执行。顺序结构中,按语句的自然顺序一次执行。n用顺序结构描述将华氏温度用顺序结构描述将华氏温度F F转换成摄氏转换成摄氏温度温度C C的流程。的流程。n算法:算法: C = 5/9*(F-32) C = 5/9*(F-32)2024/9/214选择结构选择结构2024/9/215循环结构循环结构2024/9/216流程图流程图- -表示算法表示算法n 例:求给定半径例:求给定半径R R的圆面积和圆周长的圆面积和圆周长n这是一个数学问题。这是一个数学问题。n算法:算法:2024/9/217流程图流程图- -表示算法表示算法n 例:求给定半径例:求给定半径R R的绝对值的绝对值。n算法:算法:n这是分支程序结构这是分支程序结构2024/9/218流程图流程图- -表示算法表示算法n 例:给定例:给定K K值,求值,求1 1到到K K,连加和。,连加和。 Sum Sum里保存:里保存:n1+2+3+K1+2+3+K的连加和。的连加和。n重复进行某种运算,运算对象有规律地变化。重复进行某种运算,运算对象有规律地变化。采用循环结构。采用循环结构。2024/9/219目目 录录u 程序基本结构程序基本结构u 分支结构分支结构u 循环结构循环结构u 布尔表达式布尔表达式u 总结总结2024/9/2110生活中的判断生活中的判断2024/9/2111PM2.5PM2.5指数分级例子指数分级例子程序功能的程序功能的IPOIPO模式描述为:模式描述为:l输入:接受外部输入输入:接受外部输入PM2.5PM2.5值值l处理:空气质量分级算法处理:空气质量分级算法l输出:打印空气质量提醒输出:打印空气质量提醒2024/9/2112PM2.5PM2.5指数分级例子指数分级例子- -流程图流程图2024/9/2113 pm25.py pm25.py2024/9/2114ifif语句格式语句格式n 语句格式如下语句格式如下 其中其中 是条件表达式,是条件表达式, 是一个或多个语句序列是一个或多个语句序列n 先判断先判断 条件:条件:nTrueTrue,则执行,则执行,再转向下一条语句,再转向下一条语句n False False,则直接跳过,则直接跳过,转向下一条,转向下一条语句语句2024/9/2115说明:比较运算符说明:比较运算符2024/9/2116说明:逻辑运算符说明:逻辑运算符2024/9/2117二分支决策二分支决策n 二分支语法结构如下:二分支语法结构如下:n PythonPython解释器首先评估解释器首先评估n 如果如果是真的,是真的,ifif下面的语句被执行;下面的语句被执行;n 如果如果是假的,是假的,elseelse下面的语句被执行。下面的语句被执行。2024/9/2118二分支决策二分支决策示例示例注意:冒号不能省;注意:冒号不能省; if if和和elseelse对齐,并且前面不能有空格。对齐,并且前面不能有空格。2024/9/2119多分支决策多分支决策n 多分支决策是解决复杂问题的重要手段之多分支决策是解决复杂问题的重要手段之一一n 一个三分支决策可以由两个二分支结构嵌一个三分支决策可以由两个二分支结构嵌套实现套实现n 使用使用if-elseif-else描述多分支决策时,实现更描述多分支决策时,实现更多分支需要更多嵌套,影响程序的易读性多分支需要更多嵌套,影响程序的易读性n PythonPython使用使用if-elif-elseif-elif-else描述多分支决策,描述多分支决策,简化分支结构的嵌套问题简化分支结构的嵌套问题2024/9/2120多分支决策多分支决策n 使用使用if-elif-elseif-elif-else描述多分支决策:描述多分支决策:n PythonPython轮流评估每个条件,来寻找条件为轮流评估每个条件,来寻找条件为TrueTrue的分支,并执行该的分支,并执行该分支下的语句;如果没有任何条件成立,分支下的语句;如果没有任何条件成立,elseelse下面的语句被执行,下面的语句被执行,elseelse子句是可选的。子句是可选的。2024/9/2121PM2.5PM2.5指数分级例子(版本升级)指数分级例子(版本升级)n 使用使用if-elif-elseif-elif-else结构改进之前的程序:结构改进之前的程序:2024/9/2122PM2.5PM2.5指数分级例子(采用小于条件)指数分级例子(采用小于条件)2024/9/2123如果按照分数划定结果:如果按照分数划定结果:90分或以上:excellent80分或以上:good60分或以上:passed60分以下:failed请编写程序根据分数打印结果。巩固练习巩固练习2024/9/2124猜拳游戏猜拳游戏2024/9/2125试一试试一试编写一个编写一个pythonpython程序,输入两个数,比较它们的大小并输出其中较大者。程序,输入两个数,比较它们的大小并输出其中较大者。2024/9/2126目目 录录u 程序基本结构程序基本结构u 分支结构分支结构u 循环结构循环结构u 布尔表达式布尔表达式u 总结总结2024/9/2127生活中的循环生活中的循环2024/9/2128软件开发中循环的使用场景软件开发中循环的使用场景跟媳妇承认错误,说一万遍跟媳妇承认错误,说一万遍“媳妇儿,我错了媳妇儿,我错了!”print “媳妇儿,我错了!媳妇儿,我错了!”print “媳妇儿,我错了!媳妇儿,我错了!”print “媳妇儿,我错了!媳妇儿,我错了!” (还有(还有997遍)遍)使用循环,一句话搞定使用循环,一句话搞定i = 0while i 10000:print “媳妇儿,我错了!媳妇儿,我错了!”i += 12024/9/2129l一般情况下,需要一般情况下,需要多次重复执行的代码多次重复执行的代码,都可以用循环的方式来完成,都可以用循环的方式来完成l循环不是必须要使用的,但是为了循环不是必须要使用的,但是为了提高代码的重复使用率提高代码的重复使用率,所以有经验的,所以有经验的开发者都会采用循环开发者都会采用循环循环结构循环结构2024/9/2130循环结构回顾循环结构回顾2024/9/2131forfor循环循环n for 循环作为编程语言中最强力的特征之一循环作为编程语言中最强力的特征之一n Python可以使用可以使用for语句循环遍历整个序列的值语句循环遍历整个序列的值 for循环所做的概括为一句话:循环所做的概括为一句话: 于于 其中的每一个元素,做其中的每一个元素,做事情事情2024/9/2132forfor循环循环n在在for循环中,循环变量循环中,循环变量var遍历了队列中的每一个值,循环的语句体为每个值遍历了队列中的每一个值,循环的语句体为每个值执行一次。执行一次。 2024/9/2133forfor循环循环2024/9/2134forfor循环循环n 为了更深入了解为了更深入了解for循环,试着思考下面这个问题,如何打印出这样的结果?循环,试着思考下面这个问题,如何打印出这样的结果?1 + 1 = 22 + 1 = 310 + 1 = 11n 内置函数内置函数-range() 2024/9/21352024/9/2136forfor循环循环- -求平均数求平均数n 平均数计算程序的平均数计算程序的IPO如下:如下:输入:待输入数字个数,数字处理:平均数算法输出:平均数n 通用设计方案:通用设计方案:输入数字的个数n将sum初始化为0循环n次:输入数字x将x加入sum中将sum/n作为平均数输出出来2024/9/2137forfor循环循环- -代码代码2024/9/2138forfor循环循环- -执行执行n 以下是程序的执行结果以下是程序的执行结果:2024/9/2139forfor循环循环- -缺点缺点n 程序开始时必须提供输入数字总数程序开始时必须提供输入数字总数n 大规模数字求平均值需要用户首先确定个数大规模数字求平均值需要用户首先确定个数n for循环是需要提供固定循环次数的循环方式循环是需要提供固定循环次数的循环方式n Python提供了另一种循环模式即无限循环,不需要提前知道循环次数,即我提供了另一种循环模式即无限循环,不需要提前知道循环次数,即我们提到的当型循环也叫条件循环们提到的当型循环也叫条件循环2024/9/2140forfor与与ifif相结合相结合n 如何实现这样一个程序:歌曲列表中有三首歌如何实现这样一个程序:歌曲列表中有三首歌“Holy Diver,Thunderstruck,Rebel Rebel”,当播放到每首时,分别显示歌手名字,当播放到每首时,分别显示歌手名字“Dio,AC/CD,Divid Bowie”? 2024/9/2141嵌套循环嵌套循环n 编程中还有一种常见的循环,被称之为编程中还有一种常见的循环,被称之为嵌套循环嵌套循环,其实这种循环并不复杂还非,其实这种循环并不复杂还非常实用。常实用。n 例如:例如:“九九乘法表九九乘法表” 2024/9/2142嵌套循环嵌套循环n例:例:“九九乘法表九九乘法表”n 原理原理:最外层的循环依次是将数值19存储到变量i中,变量i每取一次值,内层循环就要依次将19中存储在变量j中,最后展示当前的i,j,与i*j的结果。 2024/9/2143whilewhile循环循环n 语法:语法:while语句语句while语句中语句中是布尔表达式是布尔表达式n 循环体是一条或多条语句循环体是一条或多条语句n当条件为真时,循环体重复执行当条件为真时,循环体重复执行n当条件为假时,循环终止当条件为假时,循环终止n 在在while循环中,条件总是在循环顶部被判断,即在循环体执行之前,这种结循环中,条件总是在循环顶部被判断,即在循环体执行之前,这种结构又被称为前测循环构又被称为前测循环只要只要条件成立,就一直做条件成立,就一直做,2024/9/2144whilewhile循环循环n 下面是使用下面是使用while循环完成从循环完成从0到到10的求和打的求和打印平均值的例子:印平均值的例子:n 如果循环体忘记累加如果循环体忘记累加i,条件判断一直为真,条件判断一直为真,循环体将一直执行,这就是所谓的死循环。循环体将一直执行,这就是所谓的死循环。n这时通常使用这时通常使用+c来终止一个程序来终止一个程序2024/9/2145for/whilefor/while中的中的elseelse、breakbreak用法用法n break 语句语句跳出最内层的跳出最内层的for/while循环循环2024/9/2146for/whilefor/while中的中的continuecontinue用法用法n continue 语句语句,其作用为结束本次循环、即跳出循环体中下面尚未执行的,其作用为结束本次循环、即跳出循环体中下面尚未执行的语句,对于语句,对于while循环,继续求解循环条件。而对于循环,继续求解循环条件。而对于for循环程序流程接着遍循环程序流程接着遍历循环列表。历循环列表。n continue和和break语句的区别是:语句的区别是:n continue语句只结束本次循环,而不终止整个循环的执行。语句只结束本次循环,而不终止整个循环的执行。n break 语句结束整个循环过程,不再判断执行循环的条件是否成立语句结束整个循环过程,不再判断执行循环的条件是否成立2024/9/2147for/whilefor/while中的中的elseelse用法用法n 语句与循环的搭配使用,语句与循环的搭配使用,else:后的表:后的表达式在达式在for循环列表遍历完毕后或循环列表遍历完毕后或while条件语句不满足的情况下执行,例如:条件语句不满足的情况下执行,例如:2024/9/2148目目 录录u 程序基本结构程序基本结构u 分支结构分支结构u 循环结构循环结构u 布尔表达式布尔表达式u 总结总结2024/9/2149布尔表达式布尔表达式n 条件语句和循环语句都是用布尔表达式作为条件条件语句和循环语句都是用布尔表达式作为条件n 布尔值为真或假,以布尔值为真或假,以False和和True表示表示n 前面经常使用布尔表达式比较两个值,前面经常使用布尔表达式比较两个值,如:如:while x=050布尔操作符的引入布尔操作符的引入n 简单条件在复杂决策情况下存在一定缺陷简单条件在复杂决策情况下存在一定缺陷n 例如,确定两个点是否在同一位置,即是否有相同的例如,确定两个点是否在同一位置,即是否有相同的x坐标和坐标和y坐标,下面坐标,下面是处理代码片段:是处理代码片段:51布尔操作符布尔操作符n 布尔操作符:布尔操作符:andand,oror和和notnotn 布尔运算符布尔运算符and和和or用于组合两个布尔表达式,并产生一个布尔结果用于组合两个布尔表达式,并产生一个布尔结果n and n or nnot 运算符是一个一元运算符,用来计算一个布尔表达式的反运算符是一个一元运算符,用来计算一个布尔表达式的反nnot 2024/9/2152布尔操作结果布尔操作结果真值表真值表2024/9/2153布尔操作符布尔操作符n 使用布尔运算符,可以建立任意复杂的布尔表达式使用布尔运算符,可以建立任意复杂的布尔表达式例如:例如: a or not b and c n Python中布尔运算符的优先级,从高到低依次是中布尔运算符的优先级,从高到低依次是 not 、and、or 所以上面的表达式等于如下这个带括号的版本:所以上面的表达式等于如下这个带括号的版本: ( a or (not b) and c)2024/9/2154布尔操作符布尔操作符n 使用使用and操作符改进之前比较两个点相同的例子操作符改进之前比较两个点相同的例子 2024/9/2155下面哪些是港台女明星?下面哪些是港台女明星?56判断闰年判断闰年57思考题思考题58练习题练习题n编程编程,解决猴子吃桃问题,解决猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第都吃了前一天剩下的一半零一个。到第10天早上想吃时,只剩下一个桃子了。天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子。求第一天共摘多少个桃子。(迭代法)(迭代法)59本章小节本章小节u程序控制结构程序控制结构-流程图流程图u分支语句分支语句-ifelif.elseu循环语句:循环语句:forwhileu布尔表达式布尔表达式 True False 60作业:作业:1.编写程序找出编写程序找出100-1000之间的水仙花数。之间的水仙花数。提示:水仙花数是指一个n位数(n3),它的每个位上的数字的n次幂之和等于它本身。(例如:153=13+53+33)2.编程完成输入一个整数,编程完成输入一个整数, 如果为奇数那么如果为奇数那么sum=1+1/3+.+1/n 如果为偶数那么如果为偶数那么 sum=1/2+1/4+.+1/n61Thank You!Thank You!Thank You!Thank You!62
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号