part4-1 流程控制一(if分支结构、断言)
时间:2019-09-16
本文章向大家介绍part4-1 流程控制一(if分支结构、断言),主要包括part4-1 流程控制一(if分支结构、断言)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Python 中两种流程控制结构:分支结构和循环结构。
分支结构:根据条件选择性的执行某段代码。由 if 语句提供分支支持。
循环结构:根据循环条件重复执行某段代码。由 while、for-in 语句提供。
控制循环结构的语句:break 和 continue。
顺序结构:程序从上到下一行一行地执行,中间没有任何判断和跳转。
一、 if 分支结构
if 分支的控制条件是布尔表达式或布尔值。if 分支可作为语句使用,也可作为表达式使用。if 语句常用三种形式。
第一种形式,单个条件判断:
if expression :
statements ...
第二种形式,if-else判断:
if expression :
statements ...
else:
statements ...
第三种形式,多个条件判断 if-elif-...-else:
if expression :
statements ...
elif expression :
statements ...
... # 可以有 0 条或多条 elif 语句
else:
statements ...
在第二种形式和第三种形式中,如果第三种形式的 elif 语句块不出现,就是第二种形式。
在 if 的分支语句中,如果 if 的条件为“真”,就执行 if 条件后面的多条语句;否则会依次判断 elif 条件(如果有的话),如果 elif 条件为“真”,就执行 elif 条件后面的多语句,......;如果前面的所有条件都为假,就执行 else 后面的代码块(如果有话)。在多条语句中,以缩进作为代码块(缩进通常以4个空格为单位),一个代码块当成一个整体来运行(除非在运行代码块的过程中遇到return、break、continue等关键字),这个代码块也被称为条件执行体。
1、 注意缩进
Python中是以缩进作为代码块的,要注意缩进,如果不缩进就不是代码块。另外,缩进的空格数量建议是4个,当然也可以是其它数量的空
格,也可以是1个 tab 键位。
不正确使用缩进的话,程序的运行结果可通会超出预期。
在同一个代码块内必须保持相同的缩进,既不能多、也不能少。
另外,在不使用代码块的地方,不要随意使用缩进,否则程序会报错。
2、 注意冒号
Python 冒号表示代码块的开始点,在条件执行体、循环体、函数体、类体中都要遵守该规则。结束点在与开始点的语句有相同缩进的位置。
3、 if 条件的类型
Python 执行 if 语句时,会判断 if 条件是 True 还是 False。if 的条件不是只能用 bool 类型表达式,if 条件可以是任意类型,当下面这些值作为 bool 表达式时,会被解释器当作 False 处理。
False、None、0、""、()、[]、{}
除了 False 本身,各种代表“空”的 None、空字符串、空元组、空列表、空字典都会被当成 False 处理。示例如下:
1 s = "" # 定义一个空字符串
2 if s: # if 条件使用字符串类型
3 print('s 不是空字符串')
4 else:
5 print('s 是空字符串')
6 my_list = [] # 定义一个空列表
7 if my_list: # if 条件使用列表类型
8 print('my_list 不是空列表')
9 else:
10 print('my_list 是空列表')
11 my_dict = {} # 定义一个空字典
12 if my_dict: # if 条件使用字典类型
13 print('my_dict 不是空字典')
14 else:
15 print('my_dict 是空字典')
4、 if 分支的逻辑错误
要注意 if 分支中的逻辑判断顺序,使用正确的逻辑判断顺序,避免产生预期之外的结果。对于任何 if-else 或者 if-elif-else 语句中,else 的隐含条件是对前面条件取反。示例如下:
1 age = 50
2 if age > 20:
3 print("青年人")
4 elif age > 40:
5 print("中年人")
6 elif age > 60:
7 print("老年人")
上面这段代码输出的结果是 “青年人”,没有输出预期的结果“中年人”。这里逻辑判断没有错,但是逻辑判断的顺序不对。在 if 分支语句中,只要前面的一个条件满足,就会不再执行后面的条件,所以这里执行了第一个 if 语句,后面的 elif 语句不会执行。所以在做逻辑判断时,应先判断条件范围小的,再判断条件范围大的。修改的示例如下:
1 age = 50
2 if age > 60:
3 print("老年人")
4 elif age > 40:
5 print("中年人")
6 elif age > 20:
7 print("青年人")
现在的输出结果是“中年人”,输出在预期之内,逻辑判断的顺序是非常重要的。
5、pass 语句
pass 是Python 中的空语句。在程序中占一个位置,但不希望这条语句做任何事情,就放一条 pass 语句。pass 语句可以让程序更完善。
二、 断言
断言(assert)语句和 if 分支有点类似,用于对一个 bool 表达式进行断言,如果该 bool 表达式为 True,该程序可以继续向下执行;否则程序引发 AsertionError 错误。示例如下:
age = int(input("请输入年龄:"))
assert 20 < age < 80
print("你的年龄在20到80之间")
运行上面的代码,输入一个20到80之间的数正常输出,若输入的数不在这个范围,则报 AssertionError 错误。
断言是一种特殊的分支结构,assert 断言执行的逻辑是:
if 条件为False:
程序引发 AssertionError 错误
原文地址:https://www.cnblogs.com/Micro0623/p/11526142.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python操作SQLite数据库
- Python多进程及多线程基础
- Python字符串三种格式化输出
- 你需要知道的Python代码规范性检查(pylint和flake8)
- Linux下安装python环境
- 【5】进大厂必须掌握的面试题-Java面试-spring
- Python 3.7 自动化接口测试简单实例
- 从 0 开始构建一个亿级请求的微服务架构
- ruby+cucumber+watir环境搭建
- Python常用模块os和shutil学习
- Python简单实现批量下载无版权图片
- Pycharm自动添加文件头注释和函数注释参数
- ClickHouse TTL for Columns and Tables
- Sentence-BERT详解
- 分布式文件系统(HDFS和FastDFS)