1、Slide 1-1Python程序设计程序设计分支结构分支结构Slide 1-2Python程序设计程序设计分支结构分支结构2023-2-16选择性问题的特点:选择性问题的特点:问题满足特问题满足特定条件后,执行相应的定条件后,执行相应的动作动作程序可以根据某个条件决定执行程序可以根据某个条件决定执行哪些语句哪些语句Slide 1-3Python程序设计程序设计分支结构分支结构2023-2-16布尔值:布尔值:True(表示(表示“真真”)、)、False(表示(表示“假假”),它们都是关键字),它们都是关键字布尔类型被用来代表布尔值。存放布尔值的变量被称为布尔变量。布尔类型被用来代表布尔值。
2、存放布尔值的变量被称为布尔变量。在计算机内部,在计算机内部,Python使用使用1来表示来表示True,使用,使用0来表示来表示False可以使用可以使用int函数将布尔值转换为整数函数将布尔值转换为整数也可以使用也可以使用bool函数将整数转换为布尔值函数将整数转换为布尔值Slide 1-4Python程序设计程序设计分支结构分支结构“关系关系”是指操作数之间的比较关系是指操作数之间的比较关系。六。六种关系运算符,用来表示两个操种关系运算符,用来表示两个操作数之间的大小或相等作数之间的大小或相等关系关系注意区分赋值运算符注意区分赋值运算符“=”和关系运算符和关系运算符“=”Slide 1-5
3、Python程序设计程序设计分支结构分支结构用关系运算符将两个表达式连接起用关系运算符将两个表达式连接起来的式子称为关系表达式。关系表来的式子称为关系表达式。关系表达式值为布尔值,关系成立,为达式值为布尔值,关系成立,为True,表示,表示“真真”;关系不成立,;关系不成立,为为False,表示,表示“假假”字符串比较字符串比较实际上是对字符编码实际上是对字符编码的比较。在的比较。在ASCII字符集中,字符集中,a的的ASCII码是码是97,b的的ASCII码码是是98,97 98的值的值为为FalseSlide 1-6Python程序设计程序设计分支结构分支结构避免避免直接对浮点数进行等于直
4、接对浮点数进行等于“=”或或不等于不等于“!=”比较比较,浮点数浮点数的误差的误差可可能造成两个本来应该相等的浮点数不能造成两个本来应该相等的浮点数不相等相等一般使用下列表达式判断一般使用下列表达式判断x和和y是否相等:是否相等:变量变量x和和y近似值相等,精确值近似值相等,精确值不相等。利用不相等。利用x和和y差值的绝对差值的绝对值的精度是否在允许的误差内值的精度是否在允许的误差内来判断来判断x和和y是否相等是否相等Slide 1-7Python程序设计程序设计分支结构分支结构成员关系运算符成员关系运算符in/not in用来判断用来判断某个元素某个元素是否属于某个序列,返回是否属于某个序列
5、,返回True或或FalseSlide 1-8Python程序设计程序设计分支结构分支结构对象身份运算符对象身份运算符is/is not用来判断用来判断两两个对象是否是同一个对象,返回个对象是否是同一个对象,返回True或或False注意注意区分运算符区分运算符“is”和关系运算符和关系运算符“=”is判断的是判断的是a对象是否就是对象是否就是b对象,是通过对象,是通过id来判断来判断的。的。a is b等价于等价于id(a)=id(b)=判断的是判断的是a对对象的值是否和象的值是否和b对象的值相等对象的值相等Slide 1-9Python程序设计程序设计分支结构分支结构if语句有两种不同的语
6、句有两种不同的形式形式第一种形式是:第一种形式是:if 条件条件:语句语句第二种形式是:第二种形式是:if 条件条件:语句语句1else:语句语句2条件条件两边两边没有没有圆括号,圆括号,:是是if语句的语句的组成部分组成部分语句必须相对于语句必须相对于if(else)向右缩进(一般是向右缩进向右缩进(一般是向右缩进4个个空格),每条语句必须向空格),每条语句必须向右缩进相同的空格右缩进相同的空格Python中的缩进是强制的,通过缩进,中的缩进是强制的,通过缩进,Python能够识别出语句是隶属于能够识别出语句是隶属于if(else)的)的2023-2-16第一种形式第一种形式if语句的执行过
7、程是:首先计算条语句的执行过程是:首先计算条件的值,如果条件的值为件的值,如果条件的值为“真真”,则执行语句,则执行语句后结束后结束if语句;如果条件的值为语句;如果条件的值为“假假”,则立,则立即结束即结束if语句语句第二种形式第二种形式if语句的执行过程是:首先计算条语句的执行过程是:首先计算条件的值,如果条件的值为件的值,如果条件的值为“真真”,则执行语句,则执行语句1后结束后结束if语句;如果条件的值为语句;如果条件的值为“假假”,则执,则执行行else后边的语句后边的语句2后结束后结束if语句语句Slide 1-10Python程序设计程序设计分支结构分支结构2023-2-16【例例
8、】编写编写程序,要求用户从键盘输入圆的半径,计算并输出程序,要求用户从键盘输入圆的半径,计算并输出圆面积圆面积若输入的圆半径为若输入的圆半径为0或整数,则计算并输出圆面积;若圆半径为负数,圆面积或整数,则计算并输出圆面积;若圆半径为负数,圆面积无意义,则输出错误信息无意义,则输出错误信息Slide 1-11Python程序设计程序设计分支结构分支结构2023-2-16Python提供提供一一个个random模块,包含模块,包含了了一些随机数函数一些随机数函数要使用要使用random模块模块,必须先导,必须先导入入random模块模块:import randomrandint(a,b)函数返回一
9、个函数返回一个a,b之间的随机整数之间的随机整数randrange(a,b)函数返回一个函数返回一个a,b 1之间的随机整数之间的随机整数random()函数返回一个函数返回一个0,1.0)之间的随机浮点数之间的随机浮点数Slide 1-12Python程序设计程序设计分支结构分支结构2023-2-16【例例】编写训练一年级减法的程序,随机产生两个编写训练一年级减法的程序,随机产生两个0,9之间的整数之间的整数number1、number2,要求,要求number1大于等于大于等于number2,然后提问类似,然后提问类似number1-number2=?这样的问题。在回答完问题后,会显示答案
10、正确与否的信息这样的问题。在回答完问题后,会显示答案正确与否的信息Slide 1-13Python程序设计程序设计分支结构分支结构2023-2-16【例例】编写程序,要求用户从键盘输入三个整数,输出其中的最编写程序,要求用户从键盘输入三个整数,输出其中的最大数大数将第一将第一个数作为最大数先赋值给个数作为最大数先赋值给max_value,然后将然后将max_value逐一逐一与另外两个整与另外两个整数进行比较,当发现更大数时,将它的值赋值给数进行比较,当发现更大数时,将它的值赋值给max_value_Slide 1-14Python程序设计程序设计分支结构分支结构2023-2-16求三个整数求
11、三个整数a、b、c的最大数也的最大数也可以采用三个整数之间两两比较的可以采用三个整数之间两两比较的方法方法 if a b:if a c:max_value=a else:max_value=celse:if b c:max_value=b else:max_value=c即在即在if语句中语句中包含了其他的包含了其他的if语句语句Slide 1-15Python程序设计程序设计分支结构分支结构通过缩进来通过缩进来表明表明else与哪个与哪个if匹配匹配2023-2-16if 条件条件1:if 条件条件2:语句语句1 else:语句语句2if 条件条件1:if 条件条件2:语句语句1else:语
12、句语句2Slide 1-16Python程序设计程序设计分支结构分支结构2023-2-16嵌套嵌套if语句也称为语句也称为级联式级联式if语句语句,用于解决,用于解决多分支多分支问题,形式问题,形式为为:if 条件条件1:语句语句1elif 条件条件2:语句语句2elif 条件条件3:语句语句3elif 条件条件n-1:语句语句n-1else:语句语句n首先计算条件首先计算条件1的值,如果条件的值,如果条件1的值为的值为“真真”,则执行语句则执行语句1后结束后结束if语句;否则计算条件语句;否则计算条件2的值,的值,如果条件如果条件2的值为的值为“真真”,则执行语句,则执行语句2后结束后结束i
13、f语语句;句;条件;条件1至条件至条件n-1的值都为的值都为“假假”时,时,最后执行最后执行else子句的语句子句的语句n级联式级联式if语句在语法上是一条语句,只是在语句在语法上是一条语句,只是在else子句中包含了子句中包含了if语句,而该语句,而该if语句的语句的else子句又包子句又包含了含了if语句,语句,以此类推以此类推Slide 1-17Python程序设计程序设计分支结构分支结构2023-2-16Slide 1-18Python程序设计程序设计分支结构分支结构2023-2-16【例例】本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:l 大于等于90分为A;l 小于9
14、0且大于等于80为B;l 小于80且大于等于70为C;l 小于70且大于等于60为D;l 小于60为E。嵌套嵌套语句语句Slide 1-19Python程序设计程序设计分支结构分支结构三种逻辑运算三种逻辑运算符符逻辑非:逻辑非:not逻辑与:逻辑与:and逻辑逻辑或:或:or用逻辑运算符将关系表达式或布尔值连接起来的式子称为逻辑表达式。逻辑用逻辑运算符将关系表达式或布尔值连接起来的式子称为逻辑表达式。逻辑表达式的值也为布尔表达式的值也为布尔值值真值表真值表abnot aa and ba or bTrueTrueFalseTrueTrueTrueFalseFalseFalseTrueFalseT
15、rueTrueFalseTrueFalseFalseTrueFalseFalseSlide 1-20Python程序设计程序设计分支结构分支结构逻辑运算符逻辑运算符“and”和和“or”具有具有“短路短路”特性特性对于对于a and b,当,当a为为False时,结果为时,结果为False,不必再计算,不必再计算b;仅当;仅当a为为True时,才时,才需计算需计算b对于对于a or b,当,当a为为True时,结果为时,结果为True,不必再计算,不必再计算b,仅当,仅当a为为False时,才需时,才需计算计算b德德摩根定律摩根定律not(condition1 and condition2)等
16、价于等价于 not condition1 or not condition2not(condition1 or condition2)等价于等价于 not condition1 and not condition2判断判断x和和y不不同时为同时为0的逻辑表达式:的逻辑表达式:not(x=0 and y=0)更好的写法是:更好的写法是:x!=0 or y!=0Slide 1-21Python程序设计程序设计分支结构分支结构简化条件简化条件对于:对于:x 10 and x=20,可以简化为:,可以简化为:10 x=20对于:对于:x 20,可以简化为:,可以简化为:not(10 x number2
17、 else number2若若number是偶数,显示是偶数,显示“number is even”;否则,显示;否则,显示“number is odd”print(number is even if number%2=0 else number is odd)Slide 1-25Python程序设计程序设计分支结构分支结构运算符的优先级和结合性决定了运算符的计算顺序运算符的优先级和结合性决定了运算符的计算顺序最先计算圆括号内的表达式最先计算圆括号内的表达式计算没有圆括号的表达式时,计算没有圆括号的表达式时,遵循遵循下表中的优先级(同一行中优先级相同)和结合性下表中的优先级(同一行中优先级相同)和结合性优先级优先级运算符运算符结合性结合性高*(幂)左结合+、-(正号、符号)右结合*、/、/、%(乘、除、整除、余数)左结合+、-(加、减)左结合in、not in、is、is not、=、=、!=(关系运算)左结合not(逻辑运算)右结合and(逻辑运算)左结合or(逻辑运算)左结合条件表达式左结合低=、+=、-=、*=、/=、/=、%=(赋值运算)右结合