1、会计学1Python语言基础分支语句循环语句语言基础分支语句循环语句目目 录录u 程序基本结构程序基本结构u 分支结构分支结构u 循环结构循环结构u 布尔表达式布尔表达式u 练习练习u 总结总结19:352第1页/共62页19:353程序设计基本结构程序设计基本结构n 任何算法任何算法(程序程序)都可以由顺序结构、选择结都可以由顺序结构、选择结构和循环结构这三种基本结构组合来实现。构和循环结构这三种基本结构组合来实现。第2页/共62页19:354顺序结构顺序结构n顺序结构中,按语句的自然顺序一次执顺序结构中,按语句的自然顺序一次执行。行。n用顺序结构描述将华氏温度用顺序结构描述将华氏温度F F
2、转换成摄氏转换成摄氏温度温度C C的流程。的流程。n算法:算法:C=5/9 C=5/9*(F-32)(F-32)第3页/共62页19:355选择结构选择结构第4页/共62页19:356循环结构循环结构第5页/共62页19:357流程图流程图-表示算法表示算法n 例:求给定半径例:求给定半径R R的圆面的圆面积和圆周长积和圆周长n这是一个数学问题。这是一个数学问题。n算法:算法:第6页/共62页19:358流程图流程图-表示算法表示算法n 例:求给定半径例:求给定半径R R的绝的绝对值对值。n算法:算法:n这是分支程序结构这是分支程序结构第7页/共62页19:359流程图流程图-表示算法表示算法
3、n 例:给定例:给定K K值,求值,求1 1到到K K,连加和。,连加和。Sum Sum里保存:里保存:n1+2+3+K1+2+3+K的连加和。的连加和。n重复进行某种运算,运算对象有重复进行某种运算,运算对象有规律地变化。采用循环结构。规律地变化。采用循环结构。第8页/共62页目目 录录u 程序基本结构程序基本结构u 分支结构分支结构u 循环结构循环结构u 布尔表达式布尔表达式u 总结总结19:3510第9页/共62页19:3511生活中的判断生活中的判断第10页/共62页19:3512PM2.5PM2.5指数分级例子指数分级例子程序功能的程序功能的IPOIPO模式描述为模式描述为:l输入:
4、接受外部输入输入:接受外部输入PM2.5PM2.5值值l处理:空气质量分级算法处理:空气质量分级算法l输出:打印空气质量提醒输出:打印空气质量提醒第11页/共62页19:3513PM2.5PM2.5指数分级例子指数分级例子-流程图流程图第12页/共62页19:3514 pm25.pypm25.py第13页/共62页19:3515ifif语句格式语句格式n 语句格式如下语句格式如下 其中其中 是条件表达式,是条件表达式,是一个或多个语句序列是一个或多个语句序列n 先判断先判断 条件:条件:nTrueTrue,则执行,则执行,再转向下一,再转向下一条语句条语句n False False,则直接跳过
5、,则直接跳过,转向,转向下一条语句下一条语句第14页/共62页19:3516说明:比较运算符说明:比较运算符第15页/共62页19:3517说明:逻辑运算符说明:逻辑运算符第16页/共62页19:3518二分支决策二分支决策n 二分支语法结构如下:二分支语法结构如下:n PythonPython解释器首先评估解释器首先评估n 如果如果是真的,是真的,ifif下面的语句被执行;下面的语句被执行;n 如果如果是假的,是假的,elseelse下面的语句被执行。下面的语句被执行。第17页/共62页19:3519二分支决策二分支决策示例示例注意:冒号不能省;注意:冒号不能省;if if和和elseels
6、e对齐,并且前面不能有空格。对齐,并且前面不能有空格。第18页/共62页19:3520多分支决策多分支决策n 多分支决策是解决复杂问题的多分支决策是解决复杂问题的重要手段之一重要手段之一n 一个三分支决策可以由两个二一个三分支决策可以由两个二分支结构嵌套实现分支结构嵌套实现n 使用使用if-elseif-else描述多分支决策描述多分支决策时,实现更多分支需要更多嵌套,时,实现更多分支需要更多嵌套,影响程序的易读性影响程序的易读性n PythonPython使用使用if-elif-elseif-elif-else描述描述多分支决策,简化分支结构的嵌多分支决策,简化分支结构的嵌套问题套问题第19
7、页/共62页19:3521多分支决策多分支决策n 使用使用if-elif-elseif-elif-else描述多分支决策:描述多分支决策:n PythonPython轮流评估每个条件,来寻找条件为轮流评估每个条件,来寻找条件为TrueTrue的分支,并执行该分支下的语句;如果没有任何条的分支,并执行该分支下的语句;如果没有任何条件成立,件成立,elseelse下面的语句被执行,下面的语句被执行,elseelse子句是可选子句是可选的。的。第20页/共62页19:3522PM2.5PM2.5指数分级例子(版本升级)指数分级例子(版本升级)n 使用使用if-elif-elseif-elif-els
8、e结构改进之前的程序:结构改进之前的程序:第21页/共62页19:3523PM2.5PM2.5指数分级例子指数分级例子(采用小于条(采用小于条件)件)第22页/共62页19:3524如果按照分数划定结果:如果按照分数划定结果:90分或以上:excellent80分或以上:good60分或以上:passed60分以下:failed请编写程序根据分数打印结果。巩固练习巩固练习第23页/共62页19:3525猜拳游戏猜拳游戏第24页/共62页19:3526试一试试一试编写一个编写一个pythonpython程序,输入两个数,比较它们的大小并输程序,输入两个数,比较它们的大小并输出其中较大者。出其中较
9、大者。第25页/共62页目目 录录u 程序基本结构程序基本结构u 分支结构分支结构u 循环结构循环结构u 布尔表达式布尔表达式u 总结总结19:3527第26页/共62页19:3528生活中的循环生活中的循环第27页/共62页19:3529软件开发中循环的使用场景软件开发中循环的使用场景跟媳妇承认错误,说一万遍跟媳妇承认错误,说一万遍“媳妇儿,媳妇儿,我错了我错了!”print“媳妇儿,我错了!媳妇儿,我错了!”print“媳妇儿,我错了!媳妇儿,我错了!”print“媳妇儿,我错了!媳妇儿,我错了!”(还有(还有997遍)遍)使用循环,一句话搞定使用循环,一句话搞定i =0while i 1
10、0000:print“媳妇儿,我错媳妇儿,我错了!了!”i+=1第28页/共62页19:3530l一般情况下,需要一般情况下,需要多次重复执行的代码多次重复执行的代码,都可,都可以用循环的方式来完成以用循环的方式来完成l循环不是必须要使用的,但是为了循环不是必须要使用的,但是为了提高代码的提高代码的重复使用率重复使用率,所以有经验的开发者都会采用循环,所以有经验的开发者都会采用循环循环结构循环结构第29页/共62页19:3531循环结构回顾循环结构回顾第30页/共62页for循环循环n for 循环作为编程语言中最强力的特征之一循环作为编程语言中最强力的特征之一n Python可以使用可以使用
11、for语句循环遍历整个序列的值语句循环遍历整个序列的值 for循环所做的概括为一句话:循环所做的概括为一句话:于于 其中的每一个元素,做其中的每一个元素,做事情事情19:3532第31页/共62页for循环循环n在在for循环中,循环变量循环中,循环变量var遍历了队列中的每一个值,循遍历了队列中的每一个值,循环的语句体为每个值执行一次。环的语句体为每个值执行一次。19:3533第32页/共62页for循环循环19:3534第33页/共62页for循环循环n 为了更深入了解为了更深入了解for循环,试着思考下面这个问题,如何循环,试着思考下面这个问题,如何打印出这样的结果?打印出这样的结果?1
12、+1=22+1=310+1=11n 内置函数内置函数-range()19:3535第34页/共62页19:3536第35页/共62页for循环循环-求平均数求平均数n 平均数计算程序的平均数计算程序的IPO如下:如下:输入:待输入数字个数,数字处理:平均数算法输出:平均数n 通用设计方案:通用设计方案:输入数字的个数n将sum初始化为0循环n次:输入数字x将x加入sum中将sum/n作为平均数输出出来19:3537第36页/共62页for循环循环-代码代码19:3538第37页/共62页for循环循环-执行执行n 以下是程序的执行结果以下是程序的执行结果:19:3539第38页/共62页for
13、循环循环-缺点缺点n 程序开始时必须提供输入数字总数程序开始时必须提供输入数字总数n 大规模数字求平均值需要用户首先确定个数大规模数字求平均值需要用户首先确定个数n for循环是需要提供固定循环次数的循环方式循环是需要提供固定循环次数的循环方式n Python提供了另一种循环模式即无限循环,不需要提前提供了另一种循环模式即无限循环,不需要提前知道循环次数,即我们提到的当型循环也叫条件循环知道循环次数,即我们提到的当型循环也叫条件循环19:3540第39页/共62页19:3541for与与if相结合相结合n 如何实现这样一个程序:歌曲列表中有三首歌如何实现这样一个程序:歌曲列表中有三首歌“Hol
14、y Diver,Thunderstruck,Rebel Rebel”,当播放到每首,当播放到每首时,分别显示歌手名字时,分别显示歌手名字“Dio,AC/CD,Divid Bowie”?第40页/共62页19:3542嵌套循环嵌套循环n 编程中还有一种常见的循环,被称之为编程中还有一种常见的循环,被称之为嵌套循环嵌套循环,其实这,其实这种循环并不复杂还非常实用。种循环并不复杂还非常实用。n 例如:例如:“九九乘法表九九乘法表”第41页/共62页19:3543嵌套循环嵌套循环n例:例:“九九乘法表九九乘法表”n 原理原理:最外层的循环依次是将数值19存储到变量i中,变量i每取一次值,内层循环就要依
15、次将19中存储在变量j中,最后展示当前的i,j,与i*j的结果。第42页/共62页while循环循环n 语法:语法:while语句语句while语句中语句中是布尔表达式是布尔表达式n 循环体是一条或多条语句循环体是一条或多条语句n当条件为真时,循环体重复执行当条件为真时,循环体重复执行n当条件为假时,循环终止当条件为假时,循环终止n 在在while循环中,条件总是在循环顶部被判断,即在循环循环中,条件总是在循环顶部被判断,即在循环体执行之前,这种结构又被称为前测循环体执行之前,这种结构又被称为前测循环19:3544只要只要条件成立,就一直做条件成立,就一直做,第43页/共62页while循环循
16、环n 下面是使用下面是使用while循环完成从循环完成从0到到10的求和打印平均值的例子:的求和打印平均值的例子:n 如果循环体忘记累加如果循环体忘记累加i,条件判断,条件判断一直为真,循环体将一直执行,这一直为真,循环体将一直执行,这就是所谓的死循环。就是所谓的死循环。n这时通常使用这时通常使用+c来终止一来终止一个程序个程序19:3545第44页/共62页for/while中的中的else、break用法用法n break 语句语句跳出最内层的跳出最内层的for/while循环循环19:3546第45页/共62页for/while中的中的continue用法用法n continue 语句语
17、句,其作用为结束本次循环、即跳出循环,其作用为结束本次循环、即跳出循环体中下面尚未执行的语句,对于体中下面尚未执行的语句,对于while循环,继续求解循循环,继续求解循环条件。而对于环条件。而对于for循环程序流程接着遍历循环列表。循环程序流程接着遍历循环列表。n continue和和break语句的区别是:语句的区别是:n continue语句只结束本次循环,而不终止整个循环的执行。语句只结束本次循环,而不终止整个循环的执行。n break 语句结束整个循环过程,不再判断执行循环的条件是语句结束整个循环过程,不再判断执行循环的条件是否成立否成立19:3547第46页/共62页for/whil
18、e中的中的else用法用法n 语句与循环的搭配使语句与循环的搭配使用,用,else:后的表达式在:后的表达式在for循环列表遍历完毕后或循环列表遍历完毕后或while条件语句不满足的情况下执行,例如:条件语句不满足的情况下执行,例如:19:3548第47页/共62页目目 录录u 程序基本结构程序基本结构u 分支结构分支结构u 循环结构循环结构u 布尔表达式布尔表达式u 总结总结19:3549第48页/共62页布尔表达式布尔表达式n 条件语句和循环语句都是用布尔表达式作为条件条件语句和循环语句都是用布尔表达式作为条件n 布尔值为真或假,以布尔值为真或假,以False和和True表示表示n 前面经
19、常使用布尔表达式比较两个值,前面经常使用布尔表达式比较两个值,如:如:while x=050第49页/共62页布尔操作符的引入布尔操作符的引入n 简单条件在复杂决策情况下存在一定缺陷简单条件在复杂决策情况下存在一定缺陷n 例如,确定两个点是否在同一位置,即是否有相同的例如,确定两个点是否在同一位置,即是否有相同的x坐标和坐标和y坐标,下面是处理代码片段:坐标,下面是处理代码片段:51第50页/共62页布尔操作符布尔操作符n 布尔操作符:布尔操作符:andand,oror和和notnotn 布尔运算符布尔运算符and和和or用于组合两个布尔表达式,并产生用于组合两个布尔表达式,并产生一个布尔结果
20、一个布尔结果n and n or nnot 运算符是一个一元运算符,用来计算一个布尔表达运算符是一个一元运算符,用来计算一个布尔表达式的反式的反nnot 19:3552第51页/共62页布尔操作结果布尔操作结果真值表真值表19:3553第52页/共62页布尔操作符布尔操作符n 使用布尔运算符,可以建立任意复杂的布尔表达式使用布尔运算符,可以建立任意复杂的布尔表达式例如:例如:a or not b and c n Python中布尔运算符的优先级,从高到低依次是中布尔运算符的优先级,从高到低依次是 not、and、or 所以上面的表达式等于如下这个带括号的版本:所以上面的表达式等于如下这个带括号
21、的版本:(a or (not b)and c)19:3554第53页/共62页布尔操作符布尔操作符n 使用使用and操作符改进之前比较两个点相同的例子操作符改进之前比较两个点相同的例子19:3555第54页/共62页56下面哪些是港台女明星?下面哪些是港台女明星?第55页/共62页57判断闰年判断闰年第56页/共62页思考题思考题58第57页/共62页59练习题练习题n编程编程,解决猴子吃桃问题,解决猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一
22、半,又多吃了一个。以后每天早上都吃了前一天吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第剩下的一半零一个。到第10天早上想吃时,只剩下一个天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子。桃子了。求第一天共摘多少个桃子。(迭代法)(迭代法)第58页/共62页本章小节本章小节u程序控制结构程序控制结构-流程图流程图u分支语句分支语句-ifelif.elseu循环语句:循环语句:forwhileu布尔表达式布尔表达式 True False 60第59页/共62页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第60页/共62页62第61页/共62页
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。