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.00>>> 
===================== 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
08-09 20:55