Python 程序设计入门(017)—— 选择结构程序设计
目录
程序中的选择结构也称为判断结构,按照条件选择执行不同的代码片段。Python 中的选择结构主要有三种形式:if 语句、if…else 语句和 if…elif…else 语句。
一、if 语句
if 语句的语法格式如下:
if 表达式:
语句块
说明:
(1)表达式:可以是比较表达式或逻辑表达式。如果表达式的值为 True,则执行语句块;如果表达式的值为 False,则跳过语句块,继续执行后面的语句。
(2)表达式中常用的比较运算符如下表所示:
逻辑运算符:
(3)Python 采用代码缩进和冒号区分代码之间的层次。if 表达式行尾的冒号和下一行的缩进(通常情况下采用 4 个空格作为一个缩进量)表示一个代码块的开始,而缩进结束则表示一个代码块的结束。使用 if 语句时,必须严格按照缩进规则进行编码。
例1:
test = input("请输入转账金额:")
if int(test) > 5000:
print("单笔转账金额不能超过5000元")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入转账金额:8000
单笔转账金额不能超过5000元
例2:缩进问题
test = input("请输入转账金额:")
if int(test) > 5000:
print("单笔转账金额不能超过5000元")
print("程序结束") # 该行代码不属于if语句的代码块
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入转账金额:2000
程序结束
例3:
num = int(input("请输入一个整数:"))
if num > 0 and num % 2 == 0:
num **= 2
print(num)
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个整数:4
16
>>>
请输入一个整数:15
15
二、if…else 语句
if…else 语句的语法格式如下:
if 表达式:
语句块1
else:
语句块1
说明:如果满足表达式指定的条件,则执行 if 后面的语句块,否则,执行 else 后面的语句块。
例1:
num = int(input("请输入一个整数:"))
if num % 2 == 0:
print("你输入了一个偶数")
else:
print("你输入了一个奇数")
print("程序结束")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个整数:15
你输入了一个奇数
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个整数:200
你输入了一个偶数
程序结束
例2:if…else 语句的嵌套
num = float(input("请输入一个数:"))
if num > 0:
print("你输入了一个正数")
else:
if num < 0:
print("你输入了一个负数")
else:
print("你输入的数是0")
print("程序结束")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:100
你输入了一个正数
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:-2.5
你输入了一个负数
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:0
你输入的数是0你
程序结束
三、if…elif…else 语句
if…elif…else 语句的语法格式如下:
if 表达式1:
语句块1
elif:
语句块2
elif:
语句块3
....
else:
语句块n
说明:if…elif…else 语句是一个多分支选择语句,当某一个表达式的值为真时,执行其后的语句块;如果表达式的值为加,跳过其后的语句块,进行下一个 elif 表达式的判断。如果所有的表达式都不为真,则执行 else 后面的语句块。
例1:判断一个数是正数、负数还是 0
num = float(input("请输入一个数:"))
if num > 0:
print("你输入了一个正数")
elif num < 0:
print("你输入了一个负数")
else:
print("你输入数是0")
print("程序结束")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:5
你输入了一个正数
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:0
你输入数是0
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:-12.5
你输入了一个负数
程序结束
例2:输入分数,判断其等级(优、良、中等、及格、不及格)
num = float(input("请输入考试成绩:"))
if num > 100 or num < 0:
print("成绩输入错误!")
elif num >=90:
print("优秀")
elif num >=80:
print("良好")
elif num >=70:
print("中等")
elif num >=60:
print("及格")
else:
print("不及格")
print("程序结束")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:500
成绩输入错误!
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:100
优秀
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:25
不及格
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:60
及格
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:80
良好
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:75
中等
程序结束
四、多分支选择语句与字典相结合
对于一些语句块比较简单(语句块只有一个输出)的 if…elif…else 语句,可以把表达式和语句块的输出内容保存到字典中。
例如:
dict1 = {"1":"查看","2":"添加","3":"删除","4":"更新","0":"退出系统"}
num = input("请输入你的操作类型(0-4):")
select = dict1.get(num,"a")
if select != "a":
print("你选择的操作类型为:",select)
else:
print("不存在你要选择的操作")
print("程序结束")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4):0
你选择的操作类型为: 退出系统
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4):1
你选择的操作类型为: 查看
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4):2
你选择的操作类型为: 添加
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4):3
你选择的操作类型为: 删除
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4):4
你选择的操作类型为: 更新
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4):5
不存在你要选择的操作
程序结束
五、逻辑运算符 and
使用 and 运算符可以进行多个条件的判断,只有同时满足多个条件才能执行 if 后面的语句块。
例如:
score1 = float(input("请输入笔试成绩:"))
score2 = float(input("请输入机试成绩:"))
if score1 >= 60 and score2 >= 60:
print("计算机等级考试通过!")
else:
print("计算机等级考试没通过!")
print("程序结束")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入笔试成绩:80
请输入机试成绩:90
计算机等级考试通过!
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入笔试成绩:50
请输入机试成绩:90
计算机等级考试没通过!
程序结束
六、逻辑运算符 or
使用 or 运算符可以进行多个条件的判断,多个条件中只要满足一个条件即执行 if 后面的语句块。
例如:
java_score = float(input("请java语言考试成绩:"))
python_score = float(input("请python语言考试成绩:"))
go_score = float(input("请go语言考试成绩:"))
if java_score >= 60 or python_score >= 60 or go_score >= 60:
print("计算机等级考试通过!")
else:
print("计算机等级考试没通过!")
print("程序结束")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请java语言考试成绩:50
请python语言考试成绩:0
请go语言考试成绩:0
计算机等级考试没通过!
程序结束
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请java语言考试成绩:88
请python语言考试成绩:0
请go语言考试成绩:0
计算机等级考试通过!
程序结束
七、if…else 语句的嵌套
if…else 语句的嵌套形式如下所示:
if 表达式1:
if 表达式2:
语句块1
else:
语句块2
else:
if 表达式3:
语句块3
else:
语句块4
例如:
num = float(input("请输入一个数:"))
if num >= 0:
if num > 0:
print(num,"是一个正数。")
else:
print(num,"是0。")
else:
print(num,"是一个负数。")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:0
0.0 是0。
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:12.5
12.5 是一个正数。
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:-2
-2.0 是一个负数。
以上代码可以写成如下形式:
num = float(input("请输入一个数:"))
if num > 0:
print(num,"是一个正数。")
else:
if num < 0:
print(num,"是一个负数。")
else:
print("输入的数是0。")
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:1.2
1.2 是一个正数。
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:-2.58
-2.58 是一个负数。
>>>
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:0
输入的数是0。