Python语言程序设计(第2版) 课件 第3章 选择结构_第1页
Python语言程序设计(第2版) 课件 第3章 选择结构_第2页
Python语言程序设计(第2版) 课件 第3章 选择结构_第3页
Python语言程序设计(第2版) 课件 第3章 选择结构_第4页
Python语言程序设计(第2版) 课件 第3章 选择结构_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章选择结构条件的描述选择结构的实现条件运算选择结构程序举例3.1.1关系运算Python的关系运算符有:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)关系运算符用于两个量的比较判断。由关系运算符将两个表达式连接起来的式子就称为关系表达式,它用来表示条件,其一般格式为:表达式1关系运算符表达式2例如,i+j==k,a<b+c。3.1条件的描述3.1.2逻辑运算1.逻辑运算符Python的逻辑运算符有:and(逻辑与)、or(逻辑或)、not(逻辑非)其中and和or运算符要求有两个运算量,用于连接两个条件,构成更复杂的条件。not运算符只作用于后面的一个逻辑量。2.逻辑表达式逻辑表达式是用逻辑运算符将逻辑量连接起来的式子。除not以外,and和or构成的逻辑表达式一般形式为:P逻辑运算符Q其中P,Q是两个逻辑量。例写出下列条件。(1)判断年份year是否为闰年。(2)判断ch是否为小写字母。(3)判断m能否被n整除。(4)判断ch既不是字母也不是数字字符。条件1:(year%4==0andyear%100!=0)oryear%400==0条件2:ch>='a'andch<='z'条件3:m%n==0或m-m/n*n==0条件4:not((ch>='A'andch<='Z')or(ch>='a'andch<='z')or(ch>='0'andch<='9'))3.逻辑运算的重要规则逻辑与(and)和逻辑或(or)运算分别有如下性质:(1)aandb:当a为False时,不管b为何值,结果为False。(2)aorb:当a为True时,不管b为何值,结果为True。对于aandb,当a的可解释为False,则表达式值为False,否则表达式的值为b;对于aorb,如果a为False,则表达式的值为b,否则表达式值为True。3.1.3测试运算1.成员测试in运算符用于在指定的序列中查找某个值是否存在,存在返回True,否则返回False。该运算符的使用格式是xiny,如果x在y序列中则返回True,否则返回False。例如:>>>3in(20,15,3,14,5)True“notin”的含义是,如果在指定的序列中没有找到值,则返回True,否则返回False。对于xnotiny,如果x不在y序列中返回True,否则返回False。例如:>>>3notin(20,15,3,14,5)False2.身份测试身份运算符用于测试两个变量是否指向同一个对象。例如:>>>a=20>>>b=20>>>aisbTrue>>>aisnotbFalse3.2.1单分支选择结构可以用if语句实现单分支选择结构,其一般格式为:if表达式:语句块3.2选择结构的实现单分支if语句的执行过程注意:(1)在if语句的表达式后面必须加冒号。(2)因为Python把非0当作真,0当作假,所以表示条件的表达式不一定必须是结果为True或False的关系表达式或逻辑表达式,可以是任意表达式。(3)if语句中的语句块必须向右缩进,语句块可以是单个语句,也可以是多个语句。当包含两个或两个以上的语句时,语句必须缩进一致,即语句块中的语句必须上下对齐。(4)如果语句块中只有一条语句,if语句也可以写在同一行上。例3-2输入两个整数a和b,先输出较大数,再输出较小数。分析:输入a,b,如果a<b,则交换a和b,否则不交换,最后输出a,b。程序如下:a,b=eval(input("输入a,b:"))ifa<b:#若a<b,交换a和b,否则不交换a,b=b,aprint(f"{a},{b}")3.2.2双分支选择结构可以用if语句实现双分支选择结构,其一般格式为:if表达式:语句块1else:语句块2双分支if语句的执行过程例输入三角形的三个边长,求三角形的面积。分析:设a,b,c表示三角形的三个边长,则构成三角形的充分必要条件是任意两边之和大于第三边,即a+b>c,b+c>a,c+a>b。如果该条件满足,则可按照海伦公式计算三角形的面积:其中p=(a+b+c)/2。frommathimport*a,b,c=eval(input("a,b,c="))ifa+b>canda+c>bandb+c>a:p=(a+b+c)/2s=sqrt(p*(p-a)*(p-b)*(p-c))print(f"a={a},b={b},c={c}")print(f"area={s}")else:print(f"a={a},b={b},c={c}")print("inputdataerror")例输入x,求对应的函数值y。分析:这是一个具有两个分支的分段函数,为了求函数值,可以采用双分支结构来实现。frommathimport*x=eval(input("x="))ifx<0:y=log(-5*x)+fabs(x)else:y=sin(x)+sqrt(x+exp(2))/(2*pi)print(f"x={x},y={y}")还可以采用两个单分支结构来实现,程序如下:frommathimport*x=eval(input("x="))ifx<0:y=log(-5*x)+fabs(x)ifx>=0:y=sin(x)+sqrt(x+exp(2))/(2*pi)print(f"x={x},y={y}")第一个if语句能否不写,并分析原因。第二个if语句能否不用,并分析原因。3.2.3多分支选择结构多分支if语句的一般格式为:if表达式1:

语句块1elif表达式2:语句块2elif表达式3:语句块3……elif表达式m:语句块m[else:语句块n]多分支if选择结构的执行过程例输入学生的成绩,根据成绩进行分类,85以上为优秀,70~84为良好,60~69为及格,60以下为不及格。分析:将学生成绩分为四个分数段,然后根据各分数段的成绩,输出不同的等级。程序分为四个分支,可以用四个单分支结构实现,也可以用多分支if语句实现。程序如下:g=float(input("请输入学生成绩:"))ifg<60:print("不及格")elifg<70:print("及格")elifg<85:print("良好")else:print("优秀")语句二:if表达式1:if表达式2:语句块1else:语句块23.2.4选择结构的嵌套if语句中可以再嵌套if语句,例如,有以下不同形式的嵌套结构。语句一:if表达式1:if表达式2:语句块1else:语句块2Python的条件运算有三个运算量,其一般格式为:表达式1if表达式else表达式2条件运算的运算规则是,先求if后面表达式的值,如果其值为True,则求表达式1,并以表达式1的值为条件运算的结果。如果if后面表达式的值为False,则求表达式2,并以表达式2的值为条件运算的结果。例如,z=xifx>yelsey。3.3条件运算例生成3个两位随机整数,输出其中最大的数。这里用条件运算表达式来实现,程序如下:importrandomx=random.randint(10,99)y=random.randint(10,99)z=random.randint(10,99)max=xifx>yelseymax=maxifmax>zelsezprint(f"x={x},y={y},z={z}".format(x,y,z))print(f"max={max}")例输入一个整数,判断它是否为水仙花数。所谓水仙花数,是指这样的一些三位整数:各位数字的立方和等于该数本身,例如153=13+53+33,因此153是水仙花数。分析:关键的一步是先分别求三位整数个位、十位、百位数字,再根据条件判断该数是否为水仙花数。3.4选择结构程序举例例输入一个时间(小时:分钟:秒),输出该时间经过5分30秒后的时间。例硅谷公司员工的工资计算方法如下:(1)工作时数超过120小时者,超过部分加发15%。(2)工作时数低于60小时者,扣发700元。(3)其余按每小时84元计发。输入员工的工号和该员工的工作时数,计算应发工资。分析:为了计算应发工资,首先分两种情况,即工时数小于等于120小时和大于120小时。工时数超过120小时时,实发工资有规定的计算方法。而工时数小于等于120小时时,又分为大于60和小于等于60两种情况,分别有不同的计算方法。所以程序分为3个分支,即工时数>120

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论