Python控制流程盘点及高级用法、神秘技巧大揭秘!

目录

一、条件语句(If-Elif-Else)

二、循环结构(For和While)

三、异常处理(Try-Except)

 四、控制流程的高级用法!

1. 列表解析

2. 生成器表达式

3. 装饰器 

One More Thing!!

​🎁更多干货

完整版文档下载方式:


在这篇文章中我们将全面深入地介绍 Python 的控制流程,包括条件语句、循环结构和异常处理等关键部分,尤其会将列表解析、生成器、装饰器等高级用法一网打尽。此外,我还将分享一些独特的见解和研究发现,希望能给你带来新的启发。文章的结尾,我们将有一个 "One More Thing" 环节,我会分享一个很特别但又很少人知道的有用的 Python 控制流程的技巧。

一、条件语句(If-Elif-Else)

Python的条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。条件语句的基本形式包括 if、if-else 和 if-elif-else 三种。

1 # for循环
2 for i in range(5):
3     print(i)
4
5 # while循环
6 count = 0
7 while count < 5:
8     print(count)
9     count += 1

注意Python的缩进规则,这是Python语法的一大特色。缩进用于区分代码块,比如以上if-elif-else的代码块。此外,Python中没有类似C++、Java的大括号{}来控制语句块,完全依赖于缩进。

二、循环结构(For和While)

Python中的循环有两种,一种是for循环,一种是while循环。

Python的for循环更像是一个遍历循环,它会遍历序列中的每一个元素。而在很多其他语言中,for循环是通过条件判断来控制循环的。Python中的range()函数在很多情况下都非常有用,特别是在循环结构中。

1 # for循环
2 for i in range(5):
3     print(i)
4
5 # while循环
6 count = 0
7 while count < 5:
8     print(count)
9     count += 1

三、异常处理(Try-Except)

在Python中,我们可以使用try-except语句来处理可能出现的错误或异常。

try:print(1 / 0)
except ZeroDivisionError:print("You can't divide by zero!")

Python的异常处理机制是一个很强大的工具,它可以帮助我们在出现错误或异常时保持程序的正常运行。不仅如此,Python的异常处理还支持多个except子句,这样我们可以对不同类型的异常进行不同的处理。此外,我们还可以使用finally子句,无论是否发生异常,finally子句中的代码总会被执行,常常用于进行清理工作。

 四、控制流程的高级用法!

Python 的控制流程不仅仅局限于简单的条件判断、循环和异常处理。Python 还有很多高级的控制流程工具,它们可以帮助我们更高效、更精简地编写代码。以下是一些常见的高级控制流程工具:

1. 列表解析

列表解析是一种创建列表的简洁方法,它在一行代码中就可以完成循环和条件判断等操作。以下是一个列表解析的例子:

squares = [x**2 for x in range(10)]

以上代码会生成一个包含 0 到 9 的平方的列表。这个列表解析的过程可以理解为:对于每个在 `range(10)` 中的 `x`,计算 `x` 的平方,然后将结果添加到列表中。列表解析相比普通的循环语句,不仅代码更简洁,而且执行速度更快。这是因为列表解析在内部实现了优化,而普通的循环语句没有。

2. 生成器表达式

生成器表达式和列表解析类似,但它生成的是一个生成器对象,而不是一个实际的列表。生成器对象是一个可迭代的对象,它在每次迭代时都会生成新的值,而不是一次性生成所有的值。以下是一个生成器表达式的例子:

squares = (x**2 for x in range(10))

以上代码会创建一个生成器对象,这个对象会在每次迭代时生成一个平方数。你可以通过 `next()` 函数或者 `for` 循环来迭代这个对象。生成器表达式比列表解析更节省内存,因为它不需要一次性生成所有的值。这在处理大规模数据时非常有用。

3. 装饰器 

装饰器是一个非常强大的工具,它允许我们修改一个函数或者类的行为,而不需要改变它的源代码。以下是一个简单的装饰器例子:

1 def my_decorator(func):2     def wrapper():3         print("Something is happening before the function is called.")4         func()5         print("Something is happening after the function is called.")6     return wrapper78 @my_decorator9 def say_hello():
10     print("Hello!")
11
12 say_hello()

以上代码定义了一个装饰器 `my_decorator`,它会在调用 `say_hello` 函数前后分别打印一段消息。`@my_decorator` 就是将 `say_hello` 函数装饰成 `my_decorator` 的方式。装饰器可以用来做很多事情,比如日志记录、性能测试、事务处理、缓存等等。在很多情况下,使用装饰器可以让我们的代码更加干净,更易于管理和重用。

One More Thing!!

我在阅读GitHub和各种技术博客中发现了一个很特别但又很少人知道的Python控制流程技巧——使用`else`子句在`for`和`while`循环中。

许多人可能不知道,`for`循环和`while`循环可以有一个可选的`else`子句,它在循环正常结束时执行。如果循环被`break`语句终止,`else`子句将不会被执行。

1 for i in range(5):2     print(i)3 else:4     print("Loop finished!")56 count = 07 while count < 5:8     print(count)9     count += 1
10 else:
11     print("Loop finished!")

  这个特性在很多情况下都非常有用,比如我们在循环中搜索一个元素,如果找到了就通过`break`语句终止循环,如果循环正常结束还没有找到,就执行`else`子句中的代码。

 

​🎁更多干货


完整版文档下载方式:

这些资料,对于从事【软件测试】等相关工作的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享。

在评论区和我互动交流或者私❤我【软件测试学习】领取即可,拿走不谢。


如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “👍点赞” “✍️评论” “💙收藏” 一键三连哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Microsoft 宣布今年底关闭开源软件托管平台 CodePlex

Microsoft 宣布&#xff0c;将关闭开源软件托管平台 CodePlex。Microsoft 2006 年推出这项服务&#xff0c;并决定在今年 12 月 15 日将其关闭。 Microsoft 公司副总裁 Brian Harry 在网上博客中写道&#xff0c;人们将可以下载他们的数据档案&#xff0c;Microsoft 正与面向开…

配电柜实时监测?这也太会省力了吧!

现代企业厂房的安全和效率对于业务的成功至关重要。在这个背景下&#xff0c;配电柜监控成为了一项关键的技术。通过实时监测和管理厂房内的配电柜&#xff0c;企业可以确保电力供应的稳定性&#xff0c;提高能源利用效率&#xff0c;并及时发现和解决潜在的故障和安全风险。 配…

matlab学习指南(2):安装工具箱Toolbox的方法(详细图解)

&#x1f305;*&#x1f539;** φ(゜▽゜*)♪ **&#x1f539;*&#x1f305; 欢迎来到馒头侠的博客&#xff0c;该类目主要讲数学建模的知识&#xff0c;大家一起学习&#xff0c;联系最后的横幅&#xff01; 喜欢的朋友可以关注下&#xff0c;私信下次更新不迷路&#xff0…

Uniapp 版本更新

文章目录 前言Uniapp更新确定接口是否能够使用基本代码封装更新软件区别 前言 软件发布之后更新是经常出现的需求。我们希望软件能够自动连网更新软件&#xff0c;而不是重新去手动安装一个apk安装包。不需要更新的软件只有两个&#xff0c;一个是微信小程序&#xff0c;另一个…

openpnp - 汇川 Inovance IS620PS2R8I-IAB-C的参数读取

文章目录 openpnp - 汇川 Inovance IS620PS2R8I-IAB-C的参数读取概述笔记伺服和配套电机型号官方伺服调试软件笔记H00H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0FH11H12H16H17H30H31自定义组备注END openpnp - 汇川 Inovance IS620PS2R8I-IAB-C的参数读取 概述 设备中用到了…

学习笔记——vscode界面设置界面缩放级别

使用vscode时&#xff0c;不知道按了什么快捷键&#xff0c;vscode窗口缩放了。 调整方法&#xff1a;设置 > 窗口(window) > Zoom Level

淘宝订单拉取更新历史状态~需求

&#x1f4da;目录 订单接口api需求问题解决 Map<String,TaobaoOrder> 订单接口api 可自行查询官网文档&#xff0c;点击进入 需求 通过接口中has_next 标识判断该时间断是否还有下一页数据,直到该值数据为false时,表面该时间范围内的订单数据获取完成. 拉取完成后需要对…

初阶C语言——指针

Hello&#xff0c;我们又见面了&#xff0c;时间过的好快啊&#xff0c;转眼间也已经写了这么多份博客了&#xff0c;在接下来的一年里&#xff0c;小编也会认真学习的敲代码&#xff0c;我们一起进步&#xff0c;那今天开始讲我们的指针&#xff0c;指针这一章节在C语言的学习…

【K8S系列】深入解析K8S监控

序言 做一件事并不难&#xff0c;难的是在于坚持。坚持一下也不难&#xff0c;难的是坚持到底。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记论点蓝色&#xff1a;用来标记论点 Kubernetes (k8s) 是一个容器编…

微服务实例构建成 docker 镜像实例

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

使用WiFi测量仪进行机器人定位的粒子过滤器研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

PLSQL Developer怎样查看当前活动会话

点‘工具’-‘会话’&#xff1a; 选择‘Active sessions’: 点击某个会话&#xff0c;可以看到其对应的sql&#xff1a;

Flutter系列文章-Flutter环境搭建和Dart基础

Flutter是Google推出的一个开源的、高性能的移动应用开发框架&#xff0c;可以用一套代码库开发Android和iOS应用。Dart则是Flutter所使用的编程语言。让我们来看看如何搭建Flutter开发环境&#xff0c;并了解Dart语言的基础知识。 一、Flutter环境搭建 1. 安装Flutter SDK …

设计模式之模板模式

1. 模板模式介绍 1、模板模式即模板方法模式自定义了一个操作中的算法骨架&#xff0c;而将步骤延迟到子类中&#xff0c;使得子类可以不改变一个算法的结构&#xff0c;可以自定义该算法的某些特定步骤&#xff1b; 2、父类中提取了公共的部分代码&#xff0c;便于代码复用&am…

【ShenYu系列】ShenYu网关条件匹配的设计及原理分析

ShenYu网关中用到了很多有趣的设计&#xff0c;我对其中的条件匹配的实现尤其感兴趣&#xff0c;所以研究一下具体实现的原理。我这边用到的shenyu版本是2.6.0-SNAPSHOT。 应用入口 原理拆解 AbstractShenyuPlugin#execute&#xff0c;获取到SelectorData集合&#xff0c;进行…

MySQL基础篇第3章(基本的SELECT语句)

文章目录 1、SQL概述1.1 SQL背景知识1.2 SQL分类 2、SQL语言的规则与规范2.1 基本规则2.2 SQL大小写规范 &#xff08;建议遵守&#xff09;2.3 注释2.4 命名规则2.5 数据导入指令 3、基本的SELECT语句3.0 SELECT...3.1 SELECT...FROM3.2 列的别名3.3 去除重复行3.4 空置参与运…

OpenCV 入门教程: Sobel算子和Scharr算子

OpenCV 入门教程&#xff1a; Sobel 算子和 Scharr 算子 导语一、Sobel 算子二、Scharr 算子三、示例应用3.1 图像边缘检测3.2 边缘增强 总结 导语 在图像处理和计算机视觉领域&#xff0c;边缘检测是一项重要的任务。 Sobel 算子和 Scharr 算子是两种常用的边缘检测算子&…

MOVEit再现新漏洞,多个版本受影响

今年6月&#xff0c;文件共享工具MOVEit Transfer曾曝出SQL 注入漏洞&#xff0c;能让远程攻击者访问其数据库并执行任意代码。最近&#xff0c;MOVEit Transfer 母公司Progress Software又披露了三个新漏洞。 这三个漏洞分别是 CVE-2023-36932、CVE-2023-36933 和 CVE-2023-36…

window安装MongoDB

安装直接先去官网下载 Download MongoDB Community Server | MongoDB 安装后如下&#xff0c;我们直接双击运行&#xff0c; 这里记得选下面(可以自己选择安装盘符位置)&#xff0c;上面第一个会自动帮你安装到C盘&#xff0c;然后选择下一步 &#xff0c;这里勾选就会选择去自…

win10电脑出现网络问题时,如何解决?

我们的Windows可能会出现各种网络连接问题&#xff1a; 尝试连接Wi-Fi网络时出现错误&#xff1a;Windows无法连接到此网络&#xff1b;可以通过Wifi访问互联网&#xff0c;但通过电缆访问以太网却无法正常工作&#xff1b;尝试通过电缆连接互联网时出现错误&#xff1a; Wind…