Python学习笔记5:入门知识(五)

引言

距离上次更新Python的学习笔记,有个四五天,主要原因有两个:一是忙,没有时间,第二个就是之前学的路线,已经到头了,我找不到下面学习路线的资料。
主要说下第二点是主要原因。我为啥明知道这个只能到入门一点点还用这份资料?主要还是因为大佬入门知识写的好,我学起来感觉不吃力,有学下去的动力。当然我也知道后面学习要换新资料,毕竟我学这个是要往稍微深入点学习的,但是入门是最关键的,只有 入门了,才有往下学的基础。

新的学习路线,主要来源是Python官方的教程和Python crash course书籍,我有空的话搞个图出来,毕竟我也是自己学习,自己研究自己的学习路线,当然大家可以找找网上培训班的学习路线和教程,甚至还有视频文件,都可以的。

由于新旧路线的差别,我不会在旧文章进行修改,我会在后面两天,对比过后更新差异内容。

那么今天的这篇文章,主要是将pass语句和match语句,废话不说进入正题。

PASS

什么是pass语句?

pass是一个空操作符,表示什么也不做,在需要语句但程序不需要执行任何操作的地方使用。

pass语句的语法

pass

什么地方用pass语句?

  1. 作为占位符,用于尚未实现的代码块(这里涉及到函数的一些知识,不深讲。函数的知识在我补充完差异内容后会更新,我本身这几天已经学习了函数的一些知识,实际上我写的这些笔记,都是我先学了一遍,复习的时候写的文章)
  2. 满足语法要求,但暂时不需要执行任何操作
  3. 在循环或条件语句中,作为空循环体或条件体
# 1.作为占位符,用于尚未实现的代码块
def example_function():
    pass  # 表示这个函数暂时不执行任何操作
    
example_function()

# 2.满足语法要求,但暂时不需要执行任何操作
if 1 == 1:
	pass
else:
	print("大家好")

# 3.在循环或条件语句中,作为空循环体或条件体
for i in range(5):
    pass  # 空循环体,循环将执行但什么也不做

为什么用pass

  1. 保持语法结构完整性,避免错误。在某些语法结构中,必须跟着一个代码块,不然解释器会报错的,这个时候用上pass,就可以保持语法结构的完整性。
  2. 占位,避免歧义及错漏。在开发过程中,可能某些部分还没有开发完成或者部分需求需要和别人合作,那么这部分代码就可以是用pass来占位,后面来进行补充。相比直接一个空代码块,可以更好的避免歧义和遗漏导致错误。
  3. 可读性和可维护性。使用pass语句,可以明确表示此处代码块虽然什么也不做,但是此处是有意留下可以后续补充得语句。同时使用pass语句可以在不影响代码运行的情况下,逐步填充和完善代码,方便维护和开发。

match

什么是match语句?

match语句是Python中一种新的模式匹配结构,它提供了一种更加直观和灵活的方式来处理数据匹配。match需要和case一起使用。

match语句的语法

当case中的值与subject匹配上,就进入case对应的代码块,匹配不上向下执行,直到最后

match subject:
    case pattern_1:
        # 代码块1
    case pattern_2:
        # 代码块2
    ...
    case _:
        # 默认代码块
  1. subject:是要匹配的表达式的结果。
  2. pattern:是与subject的结果匹配的模式。
  3. _:是一个特殊的模式,它匹配任何值,通常用作默认情况。

什么地方用match语句?

match语句可以理解为强化版易于理解的多条件语句。那么当你的目标值存在很多种可能性,每个可能性又需要适配不同的代码块的时候,就可以使用match语句了。

什么是match语句的模式?

模式是match语句的核心,它们定义了数据的结构和如何从中提取值。

  1. 字面量模式:匹配具体的值
match x:
    case 1:
        print("One")
    case 2:
        print("Two")
  1. 变量模式:将值绑定到变量。
match data:
    case var:
        print(f"Data is {var}")
  1. 序列模式:匹配序列(如列表或元组)并解构它们。
match point:
    case [x, y]:
        print(f"Point has coordinates ({x}, {y})")
  1. 映射模式:匹配字典并解构键值对。
match data:
    case {"name": name, "age": age}:
        print(f"Name: {name}, Age: {age}")
  1. 类模式:匹配类实例并访问其属性。这个看看就行,也可以先跳过。
# 定义类 point
class Point:
	# 定义初始化函数
    def __init__(self, x, y):
        self.x = x
        self.y = y
# 匹配类point
match point:
	# 如果匹配到类的x属性值是3,y属性值是4,进入当前case下的代码块
    case Point(x=3, y=4):
        print("Point is at origin offset by 3, 4")
  1. 星号模式:匹配序列中的固定数量的元素,捕获剩余的元素。
match items:
    case [first, *rest]:
        print(f"First item: {first}")
        print(f"Rest of items: {rest}")
  1. 守卫模式:在case后面添加条件语句,只有当条件为真时,该case才会匹配。
match x:
    case x if x > 0:
        print("Positive number")
    case x if x < 0:
        print("Negative number")

为什么用match

  1. match语句通过结构化的方式组织条件分支,使代码更加清晰易读,简介明了,在后续修改维护中,代码分支条件也更加直观容易维护。
  2. match语句可以表达复杂的逻辑,使得某些情况下的代码编写更加直观和高效。
  3. match语句要求所有可能的情况都被明确地覆盖到,这有助于减少遗漏某些条件分支的错误。

最后

由于match是新的语法结构,目前我提供的在线网站执行代码都是报错的。所以大家需要下载一个IDE来尝试自己编写match语句。
由于我自己的电脑已经装好了并且还有一些文件在,我明天去公司用公司电脑卸载后重新安装,搞一份IDE安装教程,大家可以等我出完教程后进行学习,或者可以自己在网上找一篇文章进行安装。

那么今天就到这里了,感谢阅读。

相关推荐

  1. Python学习笔记5入门知识()

    2024-06-12 04:44:02       7 阅读
  2. Python学习笔记——类型注解基础知识

    2024-06-12 04:44:02       22 阅读
  3. Python学习笔记——类(基础知识

    2024-06-12 04:44:02       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-12 04:44:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-12 04:44:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-12 04:44:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-12 04:44:02       18 阅读

热门阅读

  1. c++【入门】买文具2

    2024-06-12 04:44:02       7 阅读
  2. 实验4-原地逆转链表(梅开二度)

    2024-06-12 04:44:02       6 阅读
  3. 反射...

    反射...

    2024-06-12 04:44:02      6 阅读
  4. Room数据库使用

    2024-06-12 04:44:02       7 阅读
  5. 【WPF】中的ListBox的ScrollIntoView方法使用

    2024-06-12 04:44:02       8 阅读
  6. 2001NOIP普及组真题 4. 装箱问题

    2024-06-12 04:44:02       16 阅读
  7. postgres常用查询

    2024-06-12 04:44:02       8 阅读
  8. Flutter生活服务类APP常用的第三方库总汇

    2024-06-12 04:44:02       10 阅读