首页 > 编程语言 >Python学习笔记5:入门知识(五)

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

时间:2024-06-12 10:30:25浏览次数:19  
标签:语句 case 入门 Python 代码 笔记 pass print match

引言

距离上次更新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安装教程,大家可以等我出完教程后进行学习,或者可以自己在网上找一篇文章进行安装。

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

标签:语句,case,入门,Python,代码,笔记,pass,print,match
From: https://blog.csdn.net/weixin_48668564/article/details/139608016

相关文章

  • 一文带你搞清楚Python的多线程和多进程
    本文分享自华为云社区《Python中的多线程与多进程编程大全【python指南】》,作者:柠檬味拥抱。Python作为一种高级编程语言,提供了多种并发编程的方式,其中多线程与多进程是最常见的两种方式之一。在本文中,我们将探讨Python中多线程与多进程的概念、区别以及如何使用线程池与进程池来......
  • Python办公MySQL(一):安装MySQL以及Navicat可视化工具(附送Navicat到期解决方法)
    目录专栏导读1、下载MySQLCommunityServer2、安装3、安装Navicat4、连接刚刚安装的MySQL5、创建一个数据库方法1方法26、创建一张表方法1:准备一个test文件方法2:Navicat到期解决总结专栏导读课程连接Python办公MySQL(一):安装MySQL以及Navicathttps://blog.csdn.net......
  • Mac安装win7虚拟机笔记
    本来安装虚拟机也不是啥难事,但是遇到Mac这事就不一样了。镜像网上下的镜像都是好多都是ghost镜像,没办法安装到虚拟机,然后网上查询获得下面的win7地址:Windows764位ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A......
  • 计算机毕业设计项目推荐,32127 爬虫-自驾游搜索系统(开题答辩+程序定制+全套文案 )上万套
    目 录摘要1绪论1.1研究背景1.2爬虫技术1.3flask框架介绍21.4论文结构与章节安排32 自驾游搜索系统分析42.1可行性分析42.2系统流程分析42.2.1数据增加流程52.3.2数据修改流程52.3.3数据删除流程52.3系统功能分析52.3.1功能性分析62.......
  • 计算机毕业设计项目推荐,32006 node 中国传统节日介绍网站(开题答辩+程序定制+全套文案
    基于node.js中国传统节日介绍网站 摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,中国传统节日介绍网站当然也不能排除在外。中国传统节日介绍网站是以实际运用为开发背景,运用软件工程原理和开发方法,采......
  • 计算机毕业设计项目推荐,29042 基于Web的医院护理管理系统的设计(开题答辩+程序定制+全
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,医院当然也不例外。医院预约管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发过程首先对软件系统进......
  • 阅读笔记8
    作者深入介绍了软件工程的基本知识,为我们阐述了软件的本质、软件开发的不同阶段以及软件的特殊性。作者提到软件=程序+软件工程,强调了完成整个软件开发活动对于将程序转化为可用软件的重要性。此外,作者还总结了自己做过的项目类型,例如为了学习而构建的项目、为了展示技术而构建的......
  • TensorFlow、Keras的LSTM神经网络预测和异常检验股市价格时间序列数据可视化python实
    全文链接:https://tecdat.cn/?p=36448原文出处:拓端数据部落公众号本文旨在探讨如何利用TensorFlow和Keras中的LSTM神经网络来预测和检验股市价格时间序列数据,并通过Python编程语言和可视化技术来展示预测结果和异常检验的效果。具体而言,本文将首先介绍LSTM神经网络的基本原理和Te......
  • python pywinauto自动化实战案例:输入账号密码及点击登录按钮
    代码示例在使用pywinauto来模拟输入账号密码及点击登录按钮时,你需要先定位到相应的输入框和按钮,然后执行相应的操作。以下是一个基本的示例代码,展示如何实现这一过程:frompywinautoimportApplicationimporttime#假设你的应用已经启动,如果是启动应用的话,使用.start(......
  • 【PB案例学习笔记】-05 图片浏览器
    写在前面这是PB案例学习笔记系列文章的第5篇,该系列文章适合具有一定PB基础的读者。通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.gi......