Python 程序设计讲义(19):选择结构程序设计
目录
在程序中,根据条件选择执行不同的语句或语句块,这样的语句称为选择语句。选择语句根据分支的多少分为:单分支选择结构、双分支选择结构和多分支选择结构。
一、单分支选择结构
单分支选择结构只有一个条件和结果。当条件成立时执行某些语句,而当条件不成立时不执行任何语句。
1、单分支选择结构的语法
单分支选择结构的语法格式如下:
if 条件:
语句
说明:
(1)条件:为关系表达式或逻辑表达式,条件后面必须使用冒号(:
)。
(2)语句:前面必须缩进4个空格(可以使用 Tab 键),表示语句与 if 具有包含关系。
例如:输入一个整数,判断是否大于100
n=int(input("请输入一个整数:"))
if n>100:
print("你输入了一个大于100的整数。")
运行结果为:
请输入一个整数:200
你输入了一个大于100的整数。
2、单分支选择结构的程序流程图
单分支选择结构的程序流程图如下图所示:
3、单分支选择结构举例
(1)通过键盘输入一个数,如果输入的是一个正数,则显示输入的结果,并输出提示信息:你输入了一个正数。
程序如下:
n=int(input("请输入一个整数:"))
if n>0:
print(n)
print("你输入了一个正数。")
运行结果为:
请输入一个整数:50
50
你输入了一个正数。
(2)定义一个变量a,并赋值为20,然后通过键盘输入一个数,如果输入一个偶数,则和a相加,输入相加之后的结果。
程序如下:
a=20
n=int(input("请输入一个整数:"))
if n%2==0:
a+=n
print(a)
运行结果为:
请输入一个整数:100
120
二、双分支选择结构
双分支选择结构包含两个分支,当条件成立时执行一个分支,当条件不成立时执行另一个分支。
1、双分支选择结构的语法
双分支选择结构的语法格式如下:
if 条件:
语句1
else:
语句2
说明:
(1)当条件成立时,执行语句1,当条件不满足时,执行else后面的语句2。
(2)语句1和语句2具有相同的缩进。
例如:输入一个整数,判断其是偶数还是奇数。
n=int(input("请输入一个整数:"))
if n%2==0:
print(n,'是一个偶数')
else:
print(n, '是一个奇数')
运行结果为:
请输入一个整数:55
55 是一个奇数
2、双分支选择结构的程序流程图
在执行 if…else 语句时,先对 if 后面的条件进行判断,如果条件成立,则执行 if 后面的语句1,再执行 if…else 语句以外的其他语句。如果条件不成立,则执行 else 后面的语句2,再执行 if…else 语句以外的其他语句。
双分支选择结构的程序流程图如下图所示:
3、双分支选择结构举例
通过键盘输入一个整数,表示一个人的年龄,如果输入的年龄大于18,显示已成年,否则显示未成年。
程序如下:
n=int(input("请输入一个年龄:"))
if n>18:
print('已成年')
else:
print('未成年')
运行结果为:
请输入一个年龄:20
已成年
4、双分支选择结构的简化形式
在书写 if…else 语句时,可以使用简化形式。
格式如下:
语句1 if 条件 else 语句2
当满足 if 后面的条件时,执行语句1,否则执行语句2。
例如:判断分数是否及格。
程序如下:
score=float(input("请输入考试分数:"))
y='及格' if score>=60.0 else '不及格'
print(y)
运行结果为:
请输入考试分数:50
不及格
5、if…else 的嵌套
if…else 的嵌套是指在 if…else 语句中嵌套另一个 if…else 语句。根据嵌套的位置不同,可分为三种情况。
(1)if…else 放在 if 分支中
语法格式如下:
if 条件A:
语句块A
if 条件B:
语句块B
else:
语句块C
else:
语句块D
例如:输入一个整数,如果是整数,输出1,如果是负数,输出-1,如果是0,输出0
程序如下:
n=int(input("请输入一个整数:"))
if n>=0:
if n>0:
y=1
else:
y=0
else:
y=-1
print(y)
程序的运行结果为:
请输入一个整数:0
0
(2)if…else 放在 else 分支中
语法格式如下:
if 条件A:
语句块A
else:
语句块B
if 条件B:
语句块C
else:
语句块D
例如:输入一个整数,如果是整数,输出1,如果是负数,输出-1,如果是0,输出0
程序如下:
n=int(input("请输入一个整数:"))
if n>0:
y=1
else:
if n<0:
y=-1
else:
y=0
print(y)
程序的运行结果为:
请输入一个整数:-25
-1
(3)if…else 分别放在 if 和 else 分支中
语法格式如下:
if 条件A:
语句块A
if 条件B:
语句块B
else:
语句块C
else:
语句块C
if 条件C:
语句块E
else:
语句块F
例如:某一门课程的考试分笔试和机试,如果笔试和机试成绩都及格,则考试通过;如果机试和笔试都不及格,机试和笔试都需要补考;如果机试及格,笔试不及格,则笔试需要补考;如果笔试及格,机试不及格,则机试需要补考。
程序如下:
bs=int(input("请输入笔试成绩:"))
js=int(input("请输入机试成绩:"))
if bs>=60:
if js>=60:
result='成绩合格'
else:
result='成绩不合格:需要补考机试'
else:
if js>=60:
result = '成绩不合格:需要补考笔试'
else:
result = '成绩不合格:需要补考机试和笔试'
print(result)
程序的运行结果为:
请输入笔试成绩:50
请输入机试成绩:50
成绩不合格:需要补考机试和笔试
三、多分支选择结构
多分支选择结构使用 if…elif…else 语句,由 if、elif 和 else 构成,它在 if … else 语句的基础上使用 elif (可以有一个或多个 elif)进行扩展。
1、多分支选择结构的语法
多分支选择结构语法格式如下:
if 条件1:
语句块1
elif 条件2:
语句块2
elif 条件3:
语句块3
...
else:
语句块n
2、多分支选择结构的程序流程图
在执行 if…elif…else 语句时,先判断 if 后面的条件,如果条件成立,执行 if 后面的语句块;如果条件不成立,接着判断 elif 后面的条件,如果成立,就执行后面的语句块;如果条件不成立,继续判断下一个 elif 后面的条件,以此类推。如果所有的 elif 后面的条件都不成立,则执行 else 后面的语句块。
多分支选择结构的程序流程图如下图所示:
3、多分支选择结构举例
通过键盘输入学生的成绩(百分制),根据成绩确定一个等级(90-100分:优秀,80-90分:良好,70-80分:中等,60-70分:及格,60分以下:不及格,超过100分或低于0分,显示输入错误)。
程序如下:
score=int(input("请输入学生成绩:"))
if score>100 or score<0:
y='输入错误'
elif score>=90:
y="优秀"
elif score>=80:
y="良好"
elif score>=70:
y="中等"
elif score>=60:
y="及格"
else:
y="不及格"
print(y)
程序的运行结果为:
请输入学生成绩:66
及格