Python教程

8.【Python编程】条件控制结构

本文主要是介绍8.【Python编程】条件控制结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 8.【Python编程】条件控制结构
    • 8.1 代码块与分支的概念
    • 8.2 if的嵌套
    • 8.3 列表推导式中的if语句

8.【Python编程】条件控制结构

备注: 本教程主要使用Python3.6在jupyter notebook上编程实现。Python环境配置参考《【Python学习】Windows10开始你的Anaconda安装与Python环境管理》或者《【Python学习】纯终端命令开始你的Anaconda安装与Python环境管理》。

8.1 代码块与分支的概念

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
该驾驶员已构成醉驾

8.2 if的嵌套

在嵌套 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
该驾驶员已构成醉驾

8.3 列表推导式中的if语句

列表推导式是Python构建列表(list)的一种快捷方式,可以使用简洁的代码就创建出一个列表
列表推导式是通过一个可迭代对象(例如:range(15))来生成列表的
列表推导式会遍历后面的可迭代对象,然后按照for前的表达式进行运算,生成最终的列表
如果有if条件语句,for遍历后紧跟着进行条件判断
如果有多个for循环,则最终的数据数量为多个for循环的笛卡尔积
可以进行嵌套的列表推导,与嵌套for循环的原理相同

  • 当只有 if 时,列表生成式构造为 [最终表达式 - (范围选择 - 范围过滤)]
# 创建一个列表,该列表由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]
  • 当同时有 ifelse时,列表生成式构造为 [最终表达式 - 条件分支判断 - 范围选择]
# 给定一个列表[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]
这篇关于8.【Python编程】条件控制结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!