备注: 本教程主要使用Python3.6在jupyter notebook上编程实现。Python环境配置参考《【Python学习】Windows10开始你的Anaconda安装与Python环境管理》或者《【Python学习】纯终端命令开始你的Anaconda安装与Python环境管理》。
python的代码块是通过不同的缩进来划分的,相同的缩进表示相同的代码块。
python通过if语句实现条件分支。其可以划分为:
if condition_1: # 分支1 # 主代码
if condition_1: # 分支1 else: # 分支2 # 主代码
if condition_1: # 分支1 elif condition_2: # 分支2 ... else: # 分支3
注意:
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 该驾驶员已构成醉驾
在嵌套 if 语句中,可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中。需要注意的是,在相互嵌套时,一定要严格遵守不同级别代码块的缩进规范。
if condition_1: # 分支1 if condition_2: # 分支2 elif condition_3: # 分支3 else: # 分支4 elif condition_4: # 分支5 else: # 分支6
判断是否为酒后驾车
如果规定,车辆驾驶员的血液酒精含量小于 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 该驾驶员已构成醉驾
列表推导式是Python构建列表(list)的一种快捷方式,可以使用简洁的代码就创建出一个列表
列表推导式是通过一个可迭代对象(例如:range(15))来生成列表的
列表推导式会遍历后面的可迭代对象,然后按照for前的表达式进行运算,生成最终的列表
如果有if条件语句,for遍历后紧跟着进行条件判断
如果有多个for循环,则最终的数据数量为多个for循环的笛卡尔积
可以进行嵌套的列表推导,与嵌套for循环的原理相同
# 创建一个列表,该列表由0~14的所有偶数组成 list1 = [i for i in range(15) if i%2 ==0] # 带if条件的列表推导式 print("list1=",list1)
list1= [0, 2, 4, 6, 8, 10, 12, 14]
if
和 else
时,列表生成式构造为 [最终表达式 - 条件分支判断 - 范围选择]# 给定一个列表[1,3,6,8,12,15,20,19,33,38,100],将列表中的偶数除以2,奇数则直接置0 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] # 带if-else条件的列表推导式 print("list3=",list3)
list3= [0, 0, 3, 4, 6, 0, 10, 0, 0, 19, 50]