Python语句块,流程图,分支结构

简介: Python语句块,流程图,分支结构

一:语句块

语句块是指成块的代码,通常由若干行组成(也有的只有单条语句的语句块),和块外的代码处于不同的层次关系。

Python使用行首的缩进来标明语句块。Python 解释器没有限制在每一级缩进使用几个空格,只要同一个代码块中所有行的缩进距离相同即可。约定俗成的是使用 4 个空格来定义一级缩进,如果有两级缩进,那就是 8 个空格,以此类推。在严格要求的代码缩进之下,Python 代码非常整齐规范,提高了可读性,在一定程度上也提高了可维护性。

不建议使用制表符(即使用 Tab 键)来缩进。各个平台制表符缩进距离不同。如Windows 的制表符的宽度是 8,而 Linux 的制表符的宽度是 4。但现在的 IDE 和一些具有很多新特性的文本编辑器支持 py 源代码文件格式的各种特性,这包括将制表符自动地转换为 4 个空格,在这种特性的支持下,可以使用 Tab 键。

定义语句块的规律

1.定义语句块的语句需要以冒号结束,它表示从下一行开始需要增加一级缩进。

2.在语句块中进一步定义一个新的语句块时,就需要第二级缩进,以此类推。

3.在语句块中减少缩进量时,表示当前语句块已经结束,后续的行将回退到上一层。

二:流程图

圆角矩形表示“开始”与“结束”

菱形表示问题判断或选择环节

箭头代表工作流方向

矩形表示处理步骤

平行四边形表示输入/输出

如下图

三:分支结构

Python 用 if 语句实现分支结构

1.单条件分支结构

分支结构有两大类

第一种是最简单的 if 句型,即单条件分支:如果条件成立,做特定的处理,否则什么也不做,直接执行后续代码。

例:比较大小

a = 2;b = 3
a1 = "A大!"
b1 = "B大!"
if b > a:
    print(b1)

第二种是 if…else…句型,其仍然只有单个条件,但稍微复杂一些,要求条件成立的时候做一种特定的处理,而条件不成立则要做另一种处理。

例:比较大小

a = 4;b = 3
a1 = "A大!"
b1 = "B大!"
if b > a:
    print(b1)
else:
    print(a1)

2.多条件分支结构

多分支结构是 if…elif 句型,其中 elif 子句可以有多个,对应多个条件,因此它是多条件分支结构。实际上 elif 就是 else if 的缩写。

例:考试成绩由百分制转换为五级制

x = float(input("请输入您的总分:"))
if x >= 90:
 print('优')
elif x>=80:
 print('良')
elif x >= 70:
 print('中')
elif x >= 60:
 print('合格')
else:
 print('不合格')

3.嵌套分支结构

在一个分支结构的语句块中,继续进行新的条件判断,继而产生新的分支,这种情况称为嵌套的分支结构。

例:求三角形的面积和形状

import math
a = int(input('输入第一条边: '))
b = int(input('输入第二条边: '))
c = int(input('输入第三条边: '))
if a > b:
    a, b = b, a
if a > c:
    a, c = c, a
if b > c:
    b, c = c, b
if a+b > c and a+c > b and b+c > a:
    s = (a+b+c)/2.0
    s1 = math.sqrt(s*(s-a)*(s-b)*(s-c))
    print("三角形面积是:", s1)
    if a == b == c:
        print("等边三角形")
    elif a == b or b == c or a == c:
        print("等腰三角形")
    elif a*a + b*b == c*c:
        print("直角三角形")
    else:
        print("普通三角形")
else:
    print("不是三角形")

四.单句多条件和短路逻辑

1.单句多条件

多条件与

if 条件1 and 条件2 and 条件3… :

多条件或

if 条件1 or 条件2 or 条件3 … :

多条件组合

if 条件1 and 条件2 or not 条件3 … :

2.短路逻辑敲黑板啦!

Python 中的逻辑运算是短路逻辑,规则如下:

1)对于用运算符 and 连接的两个逻辑表达式,如果第一个条件为假,则结果一定为假,故对第二个条件表达式不做计算,直接跳过。

2)对于用运算符 or 连接的两个逻辑表达式,如果第一个条件为真,则结果一定为真,故对第二个条件表达式不做计算,直接跳过。

短路逻辑同时也体现在 if … elif 语句块中,如果 if 子句条件为真,并且每个 elif 子句条件都为真,则只执行 if 子句下的语句块。

例:给考试成绩评级

x = float( input("请输入你的成绩:"))
if x >= 90:
 print('优')
elif x >= 80:
 print('良')
elif x >= 70:
 print('中')
输入:100
执行结果:优

5.多个 if 语句块

如果确有特殊需要,希望将所有的逻辑运算执行完毕,则可以使用多个 if 语句块,这样程序在运行时会遍历所有 if 语句(不管每个 if 后的逻辑运算是否为 True)。

x = float( input("请输入你的成绩:"))
if x >= 90:
 print('优')
if x >= 80:
 print('良')
if x >= 70:
 print('中')
输入:100
执行结果:优 良 中

6.if 语句的三目运算形式

格式如下

var = a if <条件> else b

c = a if a > b else b

在这行代码中,c=a 的前提条件是 a>b,如果不满足则 c=b。

简单地说,条件为真时,返回左侧的表达式,否则返回右侧的表达式。

感谢大家,点赞,收藏,关注,评论!

目录
相关文章
|
2月前
|
机器学习/深度学习 数据采集 算法
时间序列结构变化分析:Python实现时间序列变化点检测
在时间序列分析和预测中,准确检测结构变化至关重要。新出现的分布模式往往会导致历史数据失去代表性,进而影响基于这些数据训练的模型的有效性。
149 1
|
1天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
9 2
|
2天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
12 3
|
8天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
12 3
|
3天前
|
算法 索引 Python
SciPy 教程 之 SciPy 图结构 3
SciPy 图结构教程:介绍图的基本概念、节点和边的定义,以及如何使用 SciPy 的 `scipy.sparse.csgraph` 模块处理图结构。重点讲解 Dijkstra 最短路径算法及其在 SciPy 中的应用,包括 `dijkstra()` 方法的参数设置和使用示例。
8 0
|
3天前
|
Python
SciPy 教程 之 SciPy 图结构 2
《SciPy 教程 之 SciPy 图结构 2》介绍了图结构作为算法学中的重要框架,通过 `scipy.sparse.csgraph` 模块处理图结构。文章示例展示了如何使用 `connected_components()` 方法查找所有连接组件,通过创建稀疏矩阵并调用该方法实现。
6 0
|
4天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 1
SciPy 图结构教程介绍了图的基本概念及其在算法中的应用。图由节点和边组成,节点代表对象,边表示对象间的连接。SciPy 的 `scipy.sparse.csgraph` 模块提供了处理图结构的工具。邻接矩阵用于表示节点间的连接关系,分为有向图和无向图两种类型。无向图的边是双向的,而有向图的边则有明确的方向。
14 0
|
1月前
|
自然语言处理 Java 编译器
为什么要看 Python 源码?它的结构长什么样子?
为什么要看 Python 源码?它的结构长什么样子?
23 2
|
2月前
|
JSON API 数据格式
使用Python发送包含复杂JSON结构的POST请求
使用Python发送包含复杂JSON结构的POST请求
|
2月前
|
机器学习/深度学习 算法 数据挖掘
决策树算法大揭秘:Python让你秒懂分支逻辑,精准分类不再难
【9月更文挑战第12天】决策树算法作为机器学习领域的一颗明珠,凭借其直观易懂和强大的解释能力,在分类与回归任务中表现出色。相比传统统计方法,决策树通过简单的分支逻辑实现了数据的精准分类。本文将借助Python和scikit-learn库,以鸢尾花数据集为例,展示如何使用决策树进行分类,并探讨其优势与局限。通过构建一系列条件判断,决策树不仅模拟了人类决策过程,还确保了结果的可追溯性和可解释性。无论您是新手还是专家,都能轻松上手,享受机器学习的乐趣。
47 9