单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机基础与应用,(,II,),(,经管类,),计算思维与,Python,程序设计,第,5,讲 选择结构,计算机基础与应用(II)(经管类)计算思维与Pytho,元组、元组操作,元组和列表的,转换,字典、字典操作,字典应用,思考题,:,如果要计算列表中的所有数据的平均值,在,Python,中没有类似于,avg(),函数可用,用什么方法可以实现该功能?,number_list=35,68,90,79,80,56,上节回顾,元组、元组操作上节回顾,创建字典,studscore=,唐僧,:55,孙悟空,:78,猪八戒,:40,沙僧,:96,如来,:65,观音,:92,白骨精,:70,红孩儿,:99,太上老君,:68,白龙马,:87,添加和修改字典,添加,太白金星,:,缺考,玉皇大帝,:90,将,“,唐僧,”,的成绩改为,60,删除,“,白骨精,“,的成绩,统计元素个数,实现输入姓名能查找成绩,上节回顾,创建字典上节回顾,上节回顾,根据,客户等级和采购量计算应付,款,04_purchaseorder.py,),建立字典,存放客户等级及折扣,A,类客户,8,折,,B,类客户,85,折,,C,类客户,9,折,产品单价为,990,元,要求:,输入采购量,输入客户等级,计算订货总金额,计算,折扣后,应,金额,上节回顾根据客户等级和采购量计算应付款04_purchase,教学目标、重点难点,教学目标,逻辑,判断与条件表达式,单分支语句,双分支语句,与,多分支语句,选择结构的嵌套,重点难点,条件表达式,双分支语句,选择结构的嵌套,教学目标、重点难点教学目标,选择结构的基本问题,【,问题,】,如何判断一个数是否为正数?,#coding=gbk,x=input(,请输入一个数:,),if x0:,print,你输入的是正数,else:,print,你输入的是非正数,False,True,X0,开始,结束,输入,x,输,输出“你输入的是非正数”,输出“你输入的是正数”,6,选择结构的基本问题【问题】如何判断一个数是否为正数?#cod,逻辑,判断与条件表达式,选择结构程序,根据条件表达式的,值,是,True/,非零,/,非空,,,还是,False/,零,/,空,(None),做出决策,控制,代码块的执行,由,条件表达式,的,值,控制,执行的,代码块,条件表达式,条件表达式的值,选择控制,代码块,7,逻辑判断与条件表达式选择结构程序7,条件表达式,典型的表达式一般由,运算符,和,操作数,/,操作对象,组成,运算符:对操作数,/,操作对象进行运算处理的符号,操作数,/,操作对象:运算符处理的数据,条件表达式中常用的运算符:,算术运算符,:,+,,,-,,*,,/,,,/,%,,,*,关系运算符,:,=,测试运算符:,in,not in,,,is,is not,逻辑运算符:,and,or,not,8,条件表达式典型的表达式一般由运算符和操作数/操作对象组成8,回顾,算术运算,9,回顾算术运算9,表达式与表达式的值,算术表达式及值,算术运算符:,+,,,-,,,*,,,/,,,/,%,,,*,运算结果是,数值型,,可将,非零,看作,True,,,零,值看作,False,。,算术表达式示例,3+2,7%3,3*2,10,表达式与表达式的值算术表达式及值10,回顾,布尔比较运算,11,回顾布尔比较运算11,表达式与表达式的值,关系表达式及值,关系运算符:,=,!=,=,进行比较的对象可以是,数值,、,字符串,、,列表、元组,和,字典,运算结果是,布尔值:,True,或,False,。,关系表达式示例,12,表达式与表达式的值关系表达式及值12,ASCII,码表,13,ord(a),97,chr(97),a,ASCII码表13 ord(a),表达式与表达式的值,测试表达式及值,测试运算符:,in,not in,,,is,is not,运算结果是布尔值,,True,或,False,测试表达式示例,#a,b,都引用同一对象,因而是相同的,#a,b,引用,不,同对象,虽然相等,但并不相同,14,成员测试,同一性测试,表达式与表达式的值测试表达式及值#a,b都引用同一对象,因而,is,和,=,这两种运算符区别,Python,中对象包含的三个基本要素,分别是:,id(,身份标识,),、,python type()(,数据类型,),和,value(,值,),。,is,和,=,都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同,。,x=y=4,5,6,z=4,5,6,x=y,True,x=z,True,x is y,True,x is z,False,print id(x),3075326572,print id(y),3075326572,print id(z),3075328140,is和=这两种运算符区别Python中对象包含的三个基本要,回顾,逻辑运算,16,回顾逻辑运算16,表达式与表达式的值,逻辑表达式及值,逻辑运算符:,and,or,not,运算结果是,布尔值,,,True(,非零值,/,非空,),或,False(,零值,/,空值,None),。,逻辑表达式示例:,17,思考,:,3,and 0,3,or 0,注意:,and,:,先计算,左,边的表达式,,若为,True,或,非零,,才计算并输出,右,边的表达式值。,若为,False,或,零,,直接输出,左,边表达式的值,并停止,右,边表达式计算。,or,:,先计算,左,边的表达式,,若为,False,或,零,,才计算并输出,右,边的表达式的值。,若为,True,或,非零,,直接输出,左,边表达式的值,并停止,右,边表达式计算。,表达式与表达式的值逻辑表达式及值17思考:注意:,复合条件表达式及值,当,一个,判断,需考虑两个或两个以上的条件时,需要对条件进行合理的逻辑组合,运算,一个表达式中出现多种运算符时,按运算符的优先级高低依次进行运算。出现小括号()运算级别最高。,18,复合条件表达式及值当一个判断需考虑两个或两个以上的条件时,需,示例,1-,复合表达式构造,将下列说法表示为相应的表达式,成绩,score,在,90100,或,5060,之间?,年龄,age,在,25,岁,30,岁之间,且,专业,subject,是计算机,或,是电子信息工程专业,?,表达式:,25,=age=30 and subject in,计算机,电子信息工程,思考题,:,将第二,个表达式换一种表达方式,注意:表示两者关系相等用“,=,”,而非“,=,”,初学者极易出错,表达式,:,25,=age=30 and(subject=,计算机,or subject=,电子信息工程,),19,表达式:,90,=score=100 or 50=score,=,25,and age,=,35,and,subject,=,计算机,or subject,=,电子信息工程,显示,“,恭喜,,,你已获得,我公司的面试机会,”,true,显示,“,抱歉,,,你未,达到面试要求,”,false,结束,25=age=25 and age=35)and(subject=,计算机,or subject=,电子信息工程,),思考题,:是否可以换一种表达条件的方式?,示例3-流程图开始age=24Subject=计算机ag,示例,3-,程序和运行结果分析,示例3-程序和运行结果分析,多分支语句,if,表达式,1,:,语句块,1,elif,表达式,2,:,语句块,2,elif,表达式,n,:,语句块,n,else:,语句块,n+1,任意数量,elif,思考:若已经执行了语句块,3,,则可以推断出哪些表达式的值为,False,,哪些表达式的值为,True,?,多分支语句if 表达式1:任意数量elif 思考:若已经执行,示例,4-,多分支选择结构,由计算机对学生的成绩进行分级(补考,及格,中,良,优),并显示其等级信息。其划分标准为:,小于,60,分为补考;,6070,分为及格,,7080,分认为中,,8090,分为良,,90100,分为优。,程序保存为,05_score.py,分析,:,将学生成绩,score,依标准进行判断,确定其等级并输出等级信息,成绩的有效范围,只有在,0100,之间才进行分级,示例4-多分支选择结构由计算机对学生的成绩进行分级(补考,及,示例,4-,流程图,示例4-流程图,示例,4-,程序,分析,示例4-程序分析,示例,4-,运行,结果,示例4-运行结果,选择结构的嵌套,在某一个分支的语句块中,需要进行新的分支。这种结构称为选择结构的嵌套,是对前,3,种选择结构的灵活运用,形式更为多样化。以下仅为其中一种形式,if,表达式,1:,语句块,1,if,表达式,11:,语,句块,11,else:,语句块,12,else:,语句块,2,31,选择结构的嵌套在某一个分支的语句块中,需要进行新的分支。这种,示例,5-,选择,嵌套,结构,购买,地铁车票的规定如下:,乘,1-4,站,,3,元,/,位;,乘,5-9,站,,4,元,/,位;,乘,9,站以上,,5,元,/,位。,输入人数、站数,输出应付款。,程序保存为,05_ticket.py,分析,:,需要进行两次分支。根据“,站,数,=4,”分支一次,表达式为假时,还需要根据“,站,数,=9,”分支一次。,示例5-选择嵌套结构购买地铁车票的规定如下:,示例,5-,程序框图,False,m=4,True,开始,输出应付款,结束,输入人数,n,、站数,m,m=9,pay=4*n,pay=5*n,True,False,pay=3*n,示例5-程序框图Falsem=4True开始输出应付款结束,示例,5-,程序分析,输入及程序运行结果:,请输入,人,数,站数,:3,5,应付款:,12,思考题:如何改成非嵌套的多分支结构?,示例5-程序分析输入及程序运行结果:思考题:如何改成非嵌套的,课堂练习与课后作业,课堂练习,本讲课件所有示例,教材示例,P47-,例,3-2,(程序保存为,05_jc01.py,),P49-,例,3-4,,并按思考修改,程序,(程序保存为,05_jc02.py,),P52-,例,3-6,(程序保存为,05_jc03.py,),P54-,例,3-8,(程序保存为,05_jc04.py,),课后,作业,P56,:,3,,,5,,,6,,,7,,,8,课堂练习与课后作业课堂练习,下节内容,循环结构程序设计,while,循环,break,语句,做好预习,下节内容循环结构程序设计,THANK YOU!,37,THANK YOU!37,