首页 > 编程语言 >Python控制流程盘点及高级用法、神秘技巧大揭秘!

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

时间:2023-06-25 22:35:44浏览次数:41  
标签:语句 Python else 盘点 print 列表 揭秘 循环

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

 

 

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

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

# if 语句
x = 10
if x > 0:
    print("x is positive")
 
# if-else 语句
if x % 2 == 0:
    print("x is even")
else:
    print("x is odd")
 
# if-elif-else 语句
if x < 0:
    print("x is negative")
elif x == 0:
    print("x is zero")
else:
    print("x is positive")

  

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

二、循环结构(For和While)

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

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

 

三、异常处理(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 wrapper
 7 
 8 @my_decorator
 9 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!")
 5 
 6 count = 0
 7 while count < 5:
 8     print(count)
 9     count += 1
10 else:
11     print("Loop finished!")

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

最后:

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

视频文档获取方式:

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

我都放在我的测试学习交流裙:11347,25192 里面了,同时还有几千个行业大佬相互进行技术交流、经验分享,如果你也感兴趣,那么期待你的加入。

 

标签:语句,Python,else,盘点,print,列表,揭秘,循环
From: https://www.cnblogs.com/jiege1/p/17488155.html

相关文章

  • 【Python】【Matplotlib】词云图
    关于从网页获取文本importrequestsfrombs4importBeautifulSoupcode=requests.request("post","url").content.decode("utf-8")soup=BeautifulSoup(code,"lxml")text=soup.findAll("div",attrs={"class":......
  • python数据可视化神器--pyecharts 快速入门
    大家好,我是一名来自广东的邓棋文,目前正在学习Python的开发技能。在开发过程中,数据可视化是一个非常重要的环节,帮助我们理解数据,从而作出正确的决策。今天,我将介绍一个强大的Python数据可视化库——pyecharts。pyecharts是一个用于生成ECharts图表的类库。ECharts是百度开源的一个......
  • python给多个变量赋值
    多重分配1。给多个变量赋值我们可以在同一行同时分配多个变量。例如-a,b=5,4print(a,b)输出:54值按给定的顺序打印。2。给多个变量赋值我们可以将单个值赋给同一行的多个变量。考虑下面的例子。示例-a=b=c="JavaTpoint"print(a)print(b)print(c)输出:Java......
  • python测试开发面试常考题:装饰器
    简介Python装饰器是一个可调用的(函数、方法或类),它获得一个函数对象func_in作为输入,并返回另一函数对象func_out。它用于扩展函数、方法或类的行为。装饰器模式通常用于扩展对象的功能。在日常生活中,这种扩展的例子有:在枪上加一个消音器,使用不同的相机镜头等等。Django框......
  • Python 知识点总结-- join 拼接
    路径拼接   path.join() 和str.join() 区别path.join() join方法是一个不定长参数path.join()是python中的OS模块中的方法,使用前需要导入os 用于将多个路径拼接成一个完整的路径。使用该方法时,需要将需要的拼接的路径以参数的形式传递给该方法importosfull......
  • python格式化输出
    py格式化输出━━━━━━━━━━━━━━━━━━━━━━━━━方式一:使用百分号(%)字符串格式化print("mynameis%s,andmyageis%d"%(name,age))方式二:使用format字符串格式化位置参数:print("mynameis{},andmyageis{}".format(age,name))关键字参数:print......
  • 首个国人主导的开源数据集成工具!揭秘 Apache 顶级项目 SeaTunnel 背后的故事
    “未来十年,世界的开源要看中国。”在CSDN《开源访谈录》的采访中,Apache孵化器导师、ApacheSeaTunnelPMCMember&Mentor代立冬说下了这样的一句话,从他在Apache孵化器里看到的项目来看,由来自中国的开发者主导的开源项目比重越来越大。代立冬本人与“侠之大者”的郭炜一起,......
  • 后悔没早知道这些Python特性
    写Python也好几年时间了。讲道理,在工作中大家肯定遇到过这样的场景:这个故事告诉我们什么?先造轮子再去GitHub?还是提高下GitHub搜索技巧?都不是!实际上,在日常的工作中,我们很多需求,无论是常见的、还是不常见的,Python都为我们提供了一些独特的解决方案,既不需要自己造轮子,也不需要引......
  • Python 中的 JSON 操作:简单、高效的数据交换格式
    在现代的数据交换和存储中,JSON(JavaScriptObjectNotation)作为一种轻量级的数据交换格式,备受青睐。它不仅易于阅读和理解,还可以灵活地表达和存储高维数据。本文将介绍如何在Python中操作JSON文件,实现数据的序列化和反序列化。1.JSON数据格式JSON格式采用键值对的方式......
  • python基础
    输入#程序会停止,直到接受到你输入的值为止name=input("请输入您的名字")数据类型(字面量)数字:int整数float浮点数complex复数(4+3j)bool布尔字符串:str字符串列表:list列表元组:tuple元组集合:set集合字典:dict字典字符串拼接print("我是"+name)#普通拼......