第4章 程序控制结构ppt课件.ppt
《第4章 程序控制结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《第4章 程序控制结构ppt课件.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 程序控制结构第第4章章 程序控制结构程序控制结构本章要解决的问题是:(1)Python系统使用哪些语句编写程序?(2)如何使用前面章节掌握的单词(标识符、变量,运算符、表达式、函数、对象、关键字等),按照一定的语法规则,构成一个合法的语句?(3)如何用已经掌握的语句,按照实际工程项目(要解决的问按照实际工程项目(要解决的问题)的要求题)的要求和和问题问题的的内在的逻辑关系内在的逻辑关系编写程序(作文)?这三个问题中,最重要的是第(3)个问题,就是解决问题的思路、步骤。程序语言一般有三类基本程序结构语句,它们是顺序结构语句、分支结构语句和循环结构语句。再加上一些方便程序编写的其它语句,一
2、个实际工程项目的编程问题就有了语句基础了。只要解题思路清楚、解题步骤正确,就能编写出解题程序。4.1 顺序结构顺序结构4.2 分支结构分支结构4.3 循环语句循环语句4.4 PASS、BREAK、CONTINUE、ELSE语句语句4.5 程序实例程序实例4.1 顺序结构顺序结构顺序结构是所有程序设计语言中执行流程的默认结构。在一个没有分支结构和循环结构的程序中,程序是按照语句书写的先后顺序依次执行的。右右图图是一个顺序结构的流程图,它有一个入口、一个出口,依次执行语句1和语句2。实现程序顺序结构的语句主要是赋值语句和内置的输入函数(input())和输出函数(print())。4.1.1 赋值
3、语句赋值语句, , . , = , , . , 赋值语句的功能是分加将, , . , 的值赋给, , . , 。赋值语句还有增量赋值的形式: += 这种增量赋值语句等价于: = + 增量赋值语句不可以对多个变量增量赋值。可以用于增量赋值语句的运算符有:+=、-=、*=、/=、/=、*=、%=、&=、|=、=、=、 x, y = y, x4.1.2 基本输入输出基本输入输出在Python语言中数据的输入/输出是通过调用函数实现的,主要有input()、print()。input()函数函数input()函数的一般格式:x = input(提示串提示串) x = input(x=)# 直接输入12
4、.5,x是一个数字的字符串 x12.5 x = input(x=)# 直接输入abcd,x是字符串abcd xabcd x = float(input(x=) x123.77print()函数函数print()函数在Python 3.X中是唯一的数据输出形式,已经不存在print语句的概念了。print()函数的一般格式:print(对象1,对象2,.,sep= ,end=n,file=sys.stdout)可以指定输出对象间的分隔符、结束标志符,输出文件。如果缺省这些,分隔符是空格,结束标志符是换行,输出目标是显示器。例如: print(1,2,3,sep=*,end=n)1*2*3 pri
5、nt(1,2,3)1 2 3print()函数还可以采用格式化输出形式:print(格式串%(对象1,对象2,.)其中,格式串是指定后面输出对象的格式的,格式串中可以包含随格式输出的字符,当然主要是对每个输出对象定义的输出格式。对于不同类型的对象采用不同的格式:输出字符串: %s输出整数:%d输出浮点数: %f指定占位宽度:%10s, %10d, %10f(都是指定10位宽度)指定小数位数:%10.3f指定左对齐: %-10s, %-10d, %-10f, %-10.3f4.2 分支结构分支结构在顺序结构中,程序只能机械地从头运行到尾。所谓分支结构,就是按照给定条件有选择地所谓分支结构,就是按
6、照给定条件有选择地执行程序中的语句。执行程序中的语句。在Python语言中,实现程序分支结构的语句有:if语句(单分支)、if.else语句(双分支)和if.elif语句(多分支)。4.2.1 if语句(单分支)语句(单分支)if语句的语法格式:if :其中:(1)表达式是任意的数值、字符、关系或逻辑表达式,或用其它数据类型表示的表达式。它表示条件,以True(1)表示真,False(0)表示假。(2)称为if语句的内嵌语句序列或子句序列,内嵌语句序列严格地以缩进方式表达,编辑器也会提示程序员开始书写内嵌语句的位置,如果不再缩进,表示内嵌语句在上一行就写完了。执行顺序是:首先计算表达式的值,若
7、表达式的值为True,则执行内嵌语句序列,否则不做任何操作。if语句的流程图如图所示。例例4.1 输入两个整数a和b,按从小到大的顺序输出这两个数(从这个例子开始,写出完整的Python程序代码)。分析:若ab,则将a、b交换,否则不交换。两个数据相互交换是程序设计的一项基本方法,可采用借助于第三个变量间接交换的方法,先将a中的原始值放入t中保存起来,然后将b的值赋给a,最后将t中保存的a的原始值赋给b,这样就实现了a和b中数据的交换。程序代码如下:# ex4-1a = eval(input(a=)b = eval(input(b=)if ba: t = a a = b b = tprint(
8、a,b)4.2.2 if.else语句(双分支)语句(双分支)if.else语句的语法格式:if :else:执行顺序是:首先计算表达式的值,若的值为True,则执行,否则执行。if.else语句的流程图如下。例例4.2 输入一个年份year,判断是否为闰年。分析:闰年的条件为:(1) 能被4整除但不能被100整除;(2)能被400整除。用逻辑表达式表示为 (year%4=0 and year%100 !=0) or (year%400=0)程序代码如下:# -*- coding: gb2312 -*-# ex4-2year = eval(input(输入年份:输入年份:) # 可用可用int
9、()函数函数if (year%4=0 and year%100 !=0) or (year%400=0):print(year,: 闰年闰年)else: print(year,: 非闰年非闰年)4.2.3 if.elif语句(多分支)语句(多分支)双分支结构只能根据条件的True和False决定处理两个分支中的一支。当实际处理的问题有多种条件时,就要用到多分支结构。if.elif语句的语法格式:if :elif :.elif :else:执行顺序是:首先计算的值,若其值为True,则执行;否则,继续计算的值,若其值为True,则执行;依此类推,若所有表达式的值都为False,则执行。注意:注意
10、:(1)不管有几个分支,程序执行了一个分支以后,其余分支不再执行。(2)当多分支中有多个表达式同时满足条件,则只执行第一条与之匹配的语句。x5xe cosxyx(79x)lnx(x0)(0 x15)(15x30)(x30)例例4.3 根据x的值,计算分段函数y的值。y的计算公式如下:程序四次运行的结果如下(x的值分别输入-5、10、27、38):y= 5y= -18481.78033459865y= 14348907.0代码在下页面代码在下页面# -*- coding: gb2312 -*-# ex4-3from math import * # 导入数学模块导入数学模块mathx = eval
11、(input(请输入请输入x: )if x0 : y = abs(x)elif x15 : y = exp(x)*cos(x) # exp(x)在在math中中elif x30 : y = pow(x,5)else : y = (7+9*x)*log(x) # log(x)在在math中中 print(y= , y)4.2.4 if语句和语句和if. else语句的嵌套形式语句的嵌套形式如果if语句和if. else语句中的内嵌的语句序列又是一个if语句或if. else语句,则称这种形式为if语句(或if. else语句)的嵌套形式。例如:if :if :else:else:if :else
12、:实际上,用实际上,用if语句(或语句(或if. else语语句)的嵌套形式完全可以代替句)的嵌套形式完全可以代替if.elif语句。但从程序结构上讲,语句。但从程序结构上讲,后者更清晰。所以,程序语言中后者更清晰。所以,程序语言中的某些语句只是为了方便程序员的某些语句只是为了方便程序员写程序,不一定是必要的。写程序,不一定是必要的。对于例对于例4.3,完全可用嵌套形式表达如下:,完全可用嵌套形式表达如下:# -*- coding: gb2312 -*-# ex4-3_2 if语句(或语句(或if. else语句)的嵌套形式语句)的嵌套形式from math import * # 导入数学模块
13、导入数学模块mathx = eval(input(请输入请输入x: )if x15 : if x0 : y = abs(x) else : y = exp(x)*cos(x) # exp(x)在在math中中else : if x30 : y = pow(x,5) else : y = (7+9*x)*log(x) # log(x)在在math中中print(y= , y)4.3 循环语句循环语句所谓循环结构,就是按照给定规则重复地执行程序中的语句。实现程序循环结构的语句称为循环语句。Python语言提供两种循环语句:while语句和for语句。4.3.1 while语句语句while语句用于
14、实现当型循环结构,其特点是:先判断,后执行。语法格式:While : 其中:(1)称为循环条件,可以是任何合法的表达式,其值为True、False,它用于控制循环是否继续进行。(2)称为循环体,它是要被重复执行的代码行。执行顺序是:首先判断的值,若为True,则执行循环体,继而再判断,直至的值为False时退出循环 。例例4.4 求自然数1100之和。即计算sum=1+2+3+.+100。分析:这是一个累加求和的问题,循环结构的算法是,定义两个int变量,i表示加数,其初值为1;sum表示和,其初值为0。首先将sum和i相加,然后i增1,再与sum相加并存入sum,直到i大于100为止。 #
15、-*- coding: gb2312 -*-# ex4-4 累计和累计和i = 1sum = 0while i=100 : sum +=i i+=1 print(sum= , sum)程序的运行结果如下:sum=5050注意:注意:(1)在循环体中应该有改变循环条件表达式值的语句,否则将会造成无限循环(死循环)。例如,在例4.4的循环体中,若没有i+=1语句,则i的值始终不会改变,循环也就永远不会终止。(2)该循环结构是先判断后执行循环体,因此,若的值一开始就为False,则循环体一次也不执行,直接退出循环。(3)要留心边界值(循环次数)。在设置循环条件时,要仔细分析边界值,以免多执行一次或少
16、执行一次。例例4.5 求出满足不等式的最小n值。1111823n分析:此不等式的左边是一个和式,该和式中的数据项个数是未知的,也正是要求出的。对于和式中的每个数据项,对应的通式为1/i(i=1,2,n),所以可以采用循环累加的方法计算出和式的和。设循环变量为i,它应从1开始取值,每次增加1,直到和式的值不小于8为止,此时的i值就是所求的n。设累加变量为s,在循环体内应把1/i的值累加到s。程序的运行结果如下:n=1674# ex-5i = 0s = 0while s8 : i+=1 s +=1/i print(n= , i)4.3.2 for 语句语句for in :其中,可以扩展为变量表,变
17、量与变量之间用“,”分开。可以是序列、迭代器或其它支持迭代的对象。执行顺序:取遍中的每一个值。每取一个值,如果这个值在中,执行,返回,再取下一个值,再判断,再执行,.,直到遍历完成或发生异常退出循环。Python语言的for语句可以理解为循环语句的一种(所以将for语句列入循环语句一类中介绍),也可以单独理解为就是一种用于迭代的语句,与其它程序语言的for 语句不一样。使用序列迭代使用序列迭代: s = XYZ, Hello, ABC, Python for i in s :. print(i). XYZHelloABCPython使用序列索引迭代使用序列索引迭代: s = XYZ, Hell
18、o, ABC, Python for i in range(len(s) :. print(i,si). 0 XYZ1 Hello2 ABC3 Python使用数字对象迭代使用数字对象迭代: x = range(5) for i in x :. print(i, xi). 0 01 12 23 34 4使用迭代器迭代使用迭代器迭代: s = XYZ, Hello, ABC, Python s1 = 200, 300, 1000, 500, 800 for x, y in zip(s, s1) :. print(%8s%8d%(x, y). XYZ 200 Hello 300 ABC 1000
19、Python 5004.3.3 多重循环多重循环多重循环又称为循环嵌套,是指在某个循环语句的循环体内还可以包含有循环语句。在实际应用中,两种循环语句不仅可以自身嵌套,还可以相互嵌套,嵌套的层数没有限制,呈现出多种复杂形式。在嵌套时,要注意在一个循环体内包含另一个完整的循环结构。例例4.6 编程输出“9X9乘法表”。# -*- coding: gb2312 -*-# ex4-6print()for i in range(1,10) : for j in range(1,10) : print(i*j, end=t)# 值以t空开 print()12345678924681012141618369
20、12151821242748121620242832365101520253035404561218243036424854714212835424956638162432404856647291827364554637281# -*- coding: gb2312 -*-# ex4-6_2print()i = 1while i=9 : j = 1 while j pass# 什么事也没做,一个空语句 if True :# 在if语句中,if语句满足条件时,也不做事. pass. while 1 :# 无穷循环,循环体没有任何动作. pass4.4.2 break 语句语句break语句用在循
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 程序控制结构ppt课件 程序控制 结构 ppt 课件
限制150内