(共17张PPT)
4.3 运用选择结构
描述问题求解过程
一、例子:求一个数的绝对值
A=input(”请输入”, “A=“)
A=int(A)
if(A>=0):
print(“Y=“,A)
else:
print(“Y=“,-A)
#输入A的值
#如果A>=0
#输出A的值
#输出-A的值
#将A转化为整数
二、条件语句
简单的说:在程序中,用if开头的语句,就是条件语句。
(一)条件语句的基本格式是:
if(条件):语句1
else:语句2
或
if(条件):
语句组1
else:
语句组2
其中,条件是一个逻辑表达式,语句组是一组Python的语句。
(二)条件执行语句的执行过程
条件语句的执行过程是:
当条件成立时,执行if后面的语句组1,否则执行else后面语句组2,条件语句的执行流程图如下图所示。
是
否
在条件语句的基本格式中有时可以省略else和语句组2,这时条件语句的执行过程是当条件成立时,执行if后面的语句组1,否则退出条件语句,执行下面的语句。
(三)关系表达式
A>=0表达式,一般称为关系表达式,
关系表达式:是用关系运算符连接起来的式子。
关系运算符号有:
运算符号 = > >= < <= <>
含义 等于 大于 大于等于 小于 小于等于 不等于
说明:当关系表达式成立时其值为真(Ture),当表达式不成立时其值则为假(False);关系表达式的值既不是数值型量,也不是字符型量,而是一种新的数量类型——逻辑型。逻辑型只有两个可能的值:假(False)和真(Ture)。
关系表达式的值定义如下:
(1)对数值型的数据比较,是按照数值的大小来进行比较。
如13>6的值为真。
(2)对其它类型数据的比较,则按照其序号进行比较。
如“D”>“B”其值为真。
(四)逻辑表达式
在实际问题中,对于一些复杂的条件,还需要几个关系表达式组合起来才能表示。例如,条件2逻辑运算符有:
Not(非)取操作数相反的值。即当操作数为假时,结果为真;当操作数为真时,结果为假。
And(与)当两个操作数都为真时,结果才为真。
Or(或)当两个操作数都为假时,结果才为假。
例如:
(1)Not(3>7)的结果为True,Not(13>7)的结果为False。
(2)(3<8)And(5<10)的结果为True,(5<8)And(5>10)的结果为False。
(3)(0<5)Or(3<1)的结果为True,(5<0)Or(3<1)的结果为False。
(五)逻辑运算的顺序
(1)当条件中只有逻辑运算符时,运算的顺序为Not And Or
(2)当条件中既有算术运算符,又有关系运算符和逻辑运算符时,运算顺序是:算术运算符 关系运算符 逻辑运算符
例如:
a+b>c+d and a>=5 or not c>0 or d<0
当a=5,b=7,c=2,d=1时,运算结果是:
真
例题1
在某购物网站上有某种笔记本优惠活动,一次购买6本以上(含6本)10本以下(含10本)打九折,一次购买11本以上(含11本)打八折。根据笔记本的单价和购买数量编写程序计算总费用?
单分支if结构
n=int(input(“请输入购买的笔记本的数量(多少本):”))
p=float(input(“请输入笔记本的单价(每本多少元):”))
if(n<6):j=1.0
if(n>=6 and n<=10):j=0.9
if(n>=11):j=0.8
t=n*p*j
print(“总费用为:”,”%.1f”%t,”元”)
双分支if结构
p=float(input(“请输入笔记本的单价(每本多少元):”))
n=int(input(“请输入购买的笔记本的数量(多少本):”))
if(n<6):j=1.0
else:
if(n<=10):j=0.9
else:j=0.8
t=n*p*j
print(“总费用为:”,”%.1f”%t,”元”)
多分支if结构
p=float(input(“请输入笔记本的单价(每本多少元):”))
n=int(input(“请输入购买的笔记本的数量(多少本):”))
if(n<6):j=1.0
elif(n<=10):j=0.9
else:j=0.8
t=n*p*j
print(“总费用为:”,”%.1f”%t,”元”)
例题2
在某购物网站上有三种笔记本的优惠价各不相同,笔记本1、笔记本2、笔记本3每本分别优惠价为a元、b元、c元,编程输出其优惠价的最大值。
双分支if结构
print(“请输入三种笔记本的优惠价(元):”)
a,b,c=input().split()
a=float(a)
b=float(b)
c=float(c)
if(a>b):m=a
else:m=b
if(c>m):m=c
print(“优惠价最大的为:”,m,”元”)
例题3
在某购物网站上购买三种笔记本作为奖品和纪念品,他们的单价分别为6元、5元和4元。若共有经费x元,希望买尽可能多的笔记本作为奖品和纪念品,并能把经费用完。那么,这三种笔记本各可以买多少本?
多分支if结构
x=int(input(输入经费的值为:))
k=x//4;y=x%4
if(y==0):n=0;m=0
elif(y==1):k=k-1;n=1;m=0
elif(y==2):k=k-1;n=0;m=1
elif(y==3):k=k-2;n=1;m=1
print(“6元的笔记本为:%d本”%m)
print(“5元的笔记本为:%d本”%n)
print(“4元的笔记本为:%d本”%k)