python中有三种结构:顺序结构、选择结构、循环结构,此处介绍选择结构。

if -- else 结构:

if 判断条件:

  执行语句

else:

  执行语句

当if后面的判断条件为真(True)时,执行冒号后面的语句,否则执行else后面的语句,注意语句缩进。

if 判断表达式可用 <=, >=,  !=,  ==, > , <

# 判断学生成绩是否合格
marks = float(input("请输入学生成绩"))
if marks >= 60:
print("该学生成绩合格")
else:
print("该学生需要补考")
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
请输入学生成绩59.5
该学生需要补考

if 判断表达式可用 in ,not in 判断

# 查找学生是否在班级中
list1 = ["张三", "李四", "王二", "麻子"]
student = input("请输入学生姓名")
if student not in list1:
print("不在该班级中")
else:
print("为此班级学生")
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
请输入学生姓名二狗子
不在该班级中

if 判断条件中,如果需要同时满足多个条件,则可用and关联判断条件

# 输出年龄在20岁内,王姓学生
student = {"张三": 19, "李四": 20, "王二": 19, "麻子": 20}
for name in student:
if "王" in name and student[name] < 20:
print("姓名:" + name+" " + "年龄:" + str(student[name]))
else:
pass
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
姓名:王二 年龄:19

if判断条件中,如果多个条件中只需要其中一个满足,则可用or 关联判断条件

# 输入成绩在90分以上,或者成绩在60分以下的考生
marks = {"张三": 95, "李四": 20, "王二": 88, "麻子": 91}
for name in marks:
if marks[name] > 90 or marks[name] < 60:
print("姓名:" + name+" " + "分数:" + str(marks[name]))
else:
pass
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
姓名:张三 分数:95
姓名:李四 分数:20
姓名:麻子 分数:91

if -- elif --else 结构

if 判断条件:

  执行语句

elif 判断条件:

  执行语句

...

...

else:

  执行语句

当if后面的判断条件为真(True)时,执行冒号后面的语句,否则进行判断elif后面的判断条件,elif判断条件为真,执行冒号后面的语句,一直往下,如果条件判断都不为真,则执行else下的语句。

# 统计学生成绩中,不及格人数、60-80间的人数,80-90间的人数、90以上人数(含90)
marks = {"张三": 95, "李四": 20, "王二": 88, "麻子": 91, "奶黄包": 90, "流沙包": 78, "燕麦包": 65, "香菇包": 90}
count_1, count_2, count_3, count_4 = list(), list(), list(), list()
for name in marks:
if marks[name] < 60:
count_1.append(name)
elif 60 <= marks[name] < 80:
count_2.append(name)
elif 80 <= marks[name] < 90:
count_3.append(name)
else:
count_4.append(name)
print("不及格人数有:" + str(len(count_1)) + "人", "分别有:" + str(count_1))
print("60至80间人数有:" + str(len(count_2)) + "人", "分别有:" + str(count_2))
print("80至90间人数有:" + str(len(count_3)) + "人", "分别有:" + str(count_3))
print("90及以上人数有:" + str(len(count_4)) + "人", "分别有:" + str(count_4))
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
不及格人数有:1人 分别有:['李四']
60至80间人数有:2人 分别有:['流沙包', '燕麦包']
80至90间人数有:1人 分别有:['王二']
90及以上人数有:4人 分别有:['张三', '麻子', '奶黄包', '香菇包']

 if 嵌套结构:

if 判断条件:

  if 判断条件:

    执行语句

  elif 判断条件:

    执行语句

  ...

  ...

  else:

    执行语句

elif 判断条件:

  执行语句

...

...

else:

  执行语句

# 统计学生成绩中,不及格人数、60-70间的人数,70 -80 间的人数,80-90间的人数、90以上人数(含90)
marks = {"张三": 95, "李四": 20, "王二": 88, "麻子": 91, "奶黄包": 90, "流沙包": 78, "燕麦包": 65, "香菇包": 90}
count_1, count_2, count_3, count_4, count_5 = list(), list(), list(), list(), list()
for name in marks:
if 70 <= marks[name] < 90:
if marks[name] < 80:
count_1.append(name)
elif 80 <= marks[name] < 90:
count_2.append(name)
else:
count_3.append(name)
elif 60 <= marks[name] < 70:
count_4.append(name)
else:
count_5.append(name)
print("不及格人数有:" + str(len(count_4)) + "人", "分别有:" + str(count_4))
print("60至70间人数有:" + str(len(count_5)) + "人", "分别有:" + str(count_5))
print("70至80间人数有:" + str(len(count_1)) + "人", "分别有:" + str(count_1))
print("80至90间人数有:" + str(len(count_2)) + "人", "分别有:" + str(count_2))
print("90及以上人数有:" + str(len(count_3)) + "人", "分别有:" + str(count_3))
打印结果:
"D:\Program Files\Python\Python37-32\python.exe" D:/demo/if_elif_else.py
不及格人数有:1人 分别有:['燕麦包']
60至70间人数有:5人 分别有:['张三', '李四', '麻子', '奶黄包', '香菇包']
70至80间人数有:1人 分别有:['流沙包']
80至90间人数有:1人 分别有:['王二']
90及以上人数有:0人 分别有:[]

if和if…elif区别在于:if判断语句无论是否满足条件,后面的if运行都还会被执行(虽然条件可能不会被满足),elif只要条件满足后面的判断将不会被执行:

选择结构在后期应用非常多,比如后期实现自动化平台时,进行元素定位方法、元素操作方法都是用if ---elif --else 结构和循环结构组合实现

python 之选择结构(if --elif --else)的更多相关文章

  1. python if 选择结构

  2. python3控制语句---选择结构语句

    python中的控制语句主要有if.if--else.if--slif--else.pass语句.其实python的控制语句与其他语言的控制语句工作原理基本一样.控制语句可以分为选择结构语句和循环结构 ...

  3. 5,注释、分支结构、循环结构、伪“选择结构”

    注释: python使用#作为行注释符,使用三引号作为多行注释符 分支结构: if-else: a=int(input("你的成绩是:")) if a>60: print(& ...

  4. python -- 程序的结构语句

    一.顺序结构 顺序结构是python脚本程序中基础的结构,它是按照程序语句出现的先后顺序进行依次执行 二.选择结构 选择结构是通过判断某些特定的条件是否满足来决定程序语句的执行顺序 常见的有单分支选择 ...

  5. python控制语句---循环结构语句

    这次主要把循环结构的控制语句补上,主要包含while.for.continue.break.循环嵌套.主要写一些基本的认识以及包含的一些实例.当只有唯一路径且只跑一次的时候选择上一节中的选择结构语句就 ...

  6. LinuxShell脚本——选择结构

    LinuxShell脚本——选择结构 摘要:本文主要学习了Shell脚本中的选择结构. if-else语句 基本语法 最简单的用法就是只使用if语句,它的语法格式为: if 条件 then 命令 fi ...

  7. Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构

    一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...

  8. bash中选择结构、循环结构与break、continue

    if两种选择结构 if 测试条件; then 程序块 else 程序块 fi if 测试条件1; then 程序块 elif 测试条件2; then 程序块 ... elif 程序条件n; then ...

  9. 黑马程序员——C语言基础 流程控制 选择结构和循环结构

    ---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...

随机推荐

  1. 一文搞定 Spring事务

    Spring 事务 上文 使用SpringJDBC 1.JDBC事务控制 ​ 不管你现在使用的是那一种ORM开发框架,只要你的核心是JDBC,那么所有的事务处理都是围绕着JDBC开展的,而JDBC之中 ...

  2. Django 出现 frame because it set X-Frame-Options to deny 错误

    一.背景 使用django3 进行开发时,由于项目前端页面使用iframe框架,浏览器错误提示信息如下 Refused to display 'http://127.0.0.1:8000/' in a ...

  3. 整理一些Windows桌面运维常用的命令,并且整合成脚本

    github地址:alittlemc/toy: 编写些脚本将运维经常所用到小玩意所集成在一起 (github.com) 持续更新! 前言 做过桌面运维的大佬们应该可以很明显感受到这份工作所需要的技能不 ...

  4. 知识图谱实体对齐2:基于GNN嵌入的方法

    知识图谱实体对齐2:基于GNN嵌入的方法 1 导引 我们在上一篇博客<知识图谱实体对齐1:基于平移(translation)嵌入的方法>中介绍了如何对基于平移嵌入+对齐损失来完成知识图谱中 ...

  5. 动词时态=>2.动作的时间状态结合

    动作和时间结合 现在的四种时态 现在进行时态 对于 现在这个时间点,这个 动作 还在进行当中 例如:我现在正在喝水 现在完成时态 对于 现在这个时间点,这个 动作 已然完成 例子:我现在已经喝完了水 ...

  6. 21.drf视图系统组成及继承关系

    APIView REST framework提供了一个 APIView 类,它是Django的 View 类的子类. APIView 类和Django原生的类视图的 View 类有以下不同: 传入的请 ...

  7. 【原创】在RT1050 LittleVgl GUI中嵌入中文输入法框架

    时隔一年多终于又冒泡了,哎,随着工作越来越忙,自己踏实坐下来写点东西真是越来越费劲,这篇文章也是准备了好久好久才打算发表出来(不瞒大家,东西做完好久了,文章憋了一年了,当真"高产" ...

  8. PCA降维的原理及实现

    PCA可以将数据从原来的向量空间映射到新的空间中.由于每次选择的都是方差最大的方向,所以往往经过前几个维度的划分后,之后的数据排列都非常紧密了, 我们可以舍弃这些维度从而实现降维 原理 内积 两个向量 ...

  9. JVM堆内存转储

    在发生内存溢出错误 java.lang.OutOfMemoryError 时, JVM自动执行堆内存转储,以方便事后进行排查和分析. JVM提供了一个命令行启动参数 HeapDumpOnOutOfMe ...

  10. 【题解】CF1503B 3-Coloring

    题面传送门 解决思路 讲一下 \(\text{VP}\) 时的思路. 首先想到,只要能将棋盘中红色或蓝色部分全部填成同一个数,那么剩下的就不会受限了(可行有两个,限制只有一个): 但考虑到交互库可能有 ...