Python 分支结构

简介: 还有一些语句不仅仅由一行代码构成,例如分支和循环语句,在选择不同的分支或者 循环条件满足的情况下,有时需要执行多行代码。分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,包括单分支结构和二分支结构。缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关系。相同层级的代码必须以垂直对齐的方式来组织, 即相同的缩进。输入冒号后回车,新的代码行将自动缩进,以便于输入代码块中的语句。子句会被执行,但有时候可能你希望,“许多”可能的子句中有一个被执行。时,跳过代码块,继续执行后续代码。
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页: 小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 分支结构

1.语句和代码块

程序是由语句和表达式构成的。

还有一些语句不仅仅由一行代码构成,例如分支和循环语句,在选择不同的分支或者 循环条件满足的情况下,有时需要执行多行代码。这样的语句称为复合语句

缩进的作用

在 Python 中, 要求使用缩进来标识代码块。 相同层级的代码必须以垂直对齐的方式来组织, 即相同的缩进。

一些代码行可以作为一组,放在“代码块”中可以根据代码行的缩进,知道代码块的开始和结束。代码块有3 条规则。

  1. 缩进增加时,代码块开始。
  2. 代码块可以包含其他代码块。
  3. 缩进减少为零,或减少为外面包围代码块的缩进,代码块就结束了。

Python语言采用严格的“缩进”来表明程序的格式框架。缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关系。

Python 对于缩进的数量没有严格规定,比较常见的是使用 4 个空格或者 1 个制表符。但最好不要在同一段代码中混合使用空格和制表符,这样可能会引起语法错误。

Python 的复合语句首行总是使用冒号:结尾。输入冒号后回车,新的代码行将自动缩进,以便于输入代码块中的语句。

首行语句: 
   内嵌代码块

2.条件表达式

控制语句的开始部分通常是“条件表达式”。分支语句通过条件表达式确定选择执行的代码块;循环语句通过条件表达式决定是否执行循环体中的代码块。通常来说,条件表达式的结果为一个布尔值,即 True或者 False,例如关系运算或者逻辑运算的表达式。控制语句根据条件是 True还是 False来决定做什么。

当表达式的最终值是下表中的某个值时,会被认作是假值:

对象类型 对象类型
布尔 False null类型 None
整型 0 浮点型 0.0
空字符串 '' 空列表 []
空元组 () 空字典 {}
空集合 set()
除了上表所列出来的值,其他的值都会被认作是真值。

3.分支结构

分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,包括单分支结构和二分支结构。由二分支结构会组合形成多分支结构。

分支结构

3.1 单分支结构:if语句

单分支结构的条件为真值 True时,执行代码块,然后执行后续代码;而条件为假值 False时,跳过代码块,继续执行后续代码。

单分支结构的语法如下所示:

if condition:
    statements
代码实例:
age = input(请输入你的年龄:)
if age < 0:
    print('输入有误,请检查输入。')

3.2 else 语句

if子句后面有时候也可以跟着 else语句。只有 if语句的条件为 False时, else子句才会执行。在英语中, else语句读起来可能是:“如果条件为真,执行这段代码。否则,执行那段代码”。 else语句不包含条件,在代码中, else语句中包含下面部分:
if condition:
    statements1
else:
    statements2
代码实例:
ID = input(请输入身份证号码:)
if int(ID[-2]) % 2:
    print('男')
else:
    print('女')

3.3 多分支结构:elif子句

虽然只有 ifelse子句会被执行,但有时候可能你希望,“许多”可能的子句中有一个被执行。 elif语句是“否则如果”,总是跟在 if或另一条 elif语句后面。它提供了另一个条件,仅在前面的条件为 False时才检查该条件。在代码中, elif语句总是包含以下部分:
if condition1:
    statements1
elif condition2:
    statements2
else:
    statements3
代码实例:
ID = input(请输入身份证号码:)
if len(ID) != 18:
    print('身份证号错误。')
elif int(ID[-2]) % 2:
    print('男')
else:
    print('女')

3.4 三元表达式: if/else

Python中的三元表达式可以将 if-else语句放到一行里。语法如下:
True_expression if condition else False_expression
真值表达式或假值表达式可以是任何Python代码。它和下面的代码效果相同:
if condition:
    a = True_expression 
else:
    a = False_expression
代码实例:
ID = input('请输入身份证号码:')
gender = '男' if int(ID[-2]) % 2 else '女'
print(gender)

目录
相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
时间序列结构变化分析:Python实现时间序列变化点检测
在时间序列分析和预测中,准确检测结构变化至关重要。新出现的分布模式往往会导致历史数据失去代表性,进而影响基于这些数据训练的模型的有效性。
288 1
|
1月前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
55 8
|
1月前
|
算法 定位技术 Python
震惊!Python 图结构竟然可以这样玩?DFS&BFS 遍历技巧大公开
在 Python 编程中,图是一种重要的数据结构,而深度优先搜索(DFS)和广度优先搜索(BFS)是遍历图的两种关键算法。本文将通过定义图的数据结构、实现 DFS 和 BFS 算法,并通过具体示例展示其应用,帮助读者深入理解这两种算法。DFS 适用于寻找路径和检查图连通性,而 BFS 适用于寻找最短路径。掌握这些技巧,可以更高效地解决与图相关的复杂问题。
29 2
|
1月前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
31 2
|
1月前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
33 3
|
1月前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
49 3
|
1月前
|
算法 索引 Python
SciPy 教程 之 SciPy 图结构 3
SciPy 图结构教程:介绍图的基本概念、节点和边的定义,以及如何使用 SciPy 的 `scipy.sparse.csgraph` 模块处理图结构。重点讲解 Dijkstra 最短路径算法及其在 SciPy 中的应用,包括 `dijkstra()` 方法的参数设置和使用示例。
18 0
|
1月前
|
Python
SciPy 教程 之 SciPy 图结构 2
《SciPy 教程 之 SciPy 图结构 2》介绍了图结构作为算法学中的重要框架,通过 `scipy.sparse.csgraph` 模块处理图结构。文章示例展示了如何使用 `connected_components()` 方法查找所有连接组件,通过创建稀疏矩阵并调用该方法实现。
15 0
|
1月前
|
算法 Python
SciPy 教程 之 SciPy 图结构 1
SciPy 图结构教程介绍了图的基本概念及其在算法中的应用。图由节点和边组成,节点代表对象,边表示对象间的连接。SciPy 的 `scipy.sparse.csgraph` 模块提供了处理图结构的工具。邻接矩阵用于表示节点间的连接关系,分为有向图和无向图两种类型。无向图的边是双向的,而有向图的边则有明确的方向。
32 0
|
2月前
|
自然语言处理 Java 编译器
为什么要看 Python 源码?它的结构长什么样子?
为什么要看 Python 源码?它的结构长什么样子?
41 2