8.【Python编程】条件控制结构
备注: 本教程主要使用Python3.6在jupyter notebook上编程实现。Python环境配置参考《【Python学习】Windows10开始你的Anaconda安装与Python环境管理》或者《【Python学习】纯终端命令开始你的Anaconda安装与Python环境管理》。
8.1 代码块与分支的概念
python的代码块是通过不同的缩进来划分的,相同的缩进表示相同的代码块。 python通过if语句实现条件分支。其可以划分为:
if condition_1:
if condition_1:
else:
if condition_1:
elif condition_2:
...
else:
注意: 1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。 3、在Python中没有switch – case语句。
例子:
age = input("请输入你的年龄")
age = int(age)
if age <=0:
print("请输入大于0的整数!")
elif age<18:
print("你还是一个未成年人。")
else:
print("你已经成年了")
请输入你的年龄21
你已经成年了
num = float(input("输入一个数字: "))
if num > 0:
print(num, "是正数")
elif num == 0:
print(num, "是零")
else:
print(num, "是负数")
输入一个数字: 21.6
21.6 是正数
判断是否为酒后驾车 如果规定,车辆驾驶员的血液酒精含量小于 20mg/100ml 不构成酒驾;酒精含量大于或等于 20mg/100ml 为酒驾;酒精含量大于或等于 80mg/100ml 为醉驾。先编写 Python 程序判断是否为酒后驾车。
ac = int(input("输入驾驶员每100ml血液的酒精含量(mg):"))
if ac < 20:
print("该驾驶员不构成酒驾")
elif ac < 80:
print("该驾驶员已构成酒驾")
else:
print("该驾驶员已构成醉驾")
输入驾驶员每100ml血液的酒精含量(mg):120
该驾驶员已构成醉驾
8.2 if的嵌套
在嵌套 if 语句中,可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中。需要注意的是,在相互嵌套时,一定要严格遵守不同级别代码块的缩进规范。
if condition_1:
if condition_2:
elif condition_3:
else:
elif condition_4:
else:
判断是否为酒后驾车 如果规定,车辆驾驶员的血液酒精含量小于 20mg/100ml 不构成酒驾;酒精含量大于或等于 20mg/100ml 为酒驾;酒精含量大于或等于 80mg/100ml 为醉驾。先编写 Python 程序判断是否为酒后驾车。
ac = int(input("输入驾驶员每100ml血液的酒精含量(mg):"))
if ac < 20:
print("该驾驶员不构成酒驾")
else:
if ac < 80:
print("该驾驶员已构成酒驾")
else:
print("该驾驶员已构成醉驾")
输入驾驶员每100ml血液的酒精含量(mg):120
该驾驶员已构成醉驾
8.3 列表推导式中的if语句
列表推导式是Python构建列表(list)的一种快捷方式,可以使用简洁的代码就创建出一个列表 列表推导式是通过一个可迭代对象(例如:range(15))来生成列表的 列表推导式会遍历后面的可迭代对象,然后按照for前的表达式进行运算,生成最终的列表 如果有if条件语句,for遍历后紧跟着进行条件判断 如果有多个for循环,则最终的数据数量为多个for循环的笛卡尔积 可以进行嵌套的列表推导,与嵌套for循环的原理相同
- 当只有 if 时,列表生成式构造为 [最终表达式 - (范围选择 - 范围过滤)]
list1 = [i for i in range(15) if i%2 ==0]
print("list1=",list1)
list1= [0, 2, 4, 6, 8, 10, 12, 14]
- 当同时有
if 和 else 时,列表生成式构造为 [最终表达式 - 条件分支判断 - 范围选择]
list2 = [1,3,6,8,12,15,20,19,33,38,100]
list3 = [int(num/2) if num%2 ==0 else 0 for num in list2]
print("list3=",list3)
list3= [0, 0, 3, 4, 6, 0, 10, 0, 0, 19, 50]
|