首页 > 编程语言 >Python知识分享第二十一天-装饰器&正则

Python知识分享第二十一天-装饰器&正则

时间:2024-12-07 23:03:48浏览次数:12  
标签:__ 代表 管理器 Python age 第二十一 正则 上下文

进阶语法

上下文管理器
	概述
		一个类只要实现了
			__enter__()
			__exit__()
			它就是 上下文管理器类 它的对象称之为  上下文管理器对象
	with语法解释
		格式
			with上下文管理器对象:
    代码块
		特点
			当with的代码执行完毕后 会自动释放 上下文管理器对象
		原理
			with语句执行前 会自动调用上下文管理器对象的
				__enter__()
					初始化
					创建对象用
			with语句执行后 会自动调用上下文管理器对象
				__exit__()
					释放资源
	案例
		自定义MyFlie类 模拟open()函数 实现读写文件操作
生成器
	概述
		Generator 基于一定的规则来生成数据 但是不是一次 而是用一批生成一批 这样做可以降低内存占用
	好处
		降低内存
		如何查看容器类型 内存占用情况
			import sys
			result = sys.getsizeof(对象)
			print(result)
			例子 :
import sys
list_num = [i for i in range(10000)]
list_num2 = (i for i in range(10000))

s1 = sys.getsizeof(list_num)
s2 = sys.getsizeof(list_num2)

print(s1, type(list_num))
print(s2, type(list_num2))
s1打印结果:  85176 <class 'list'>
s2打印结果:  192 <class 'generator'>
	格式
		推导式写法
			g1 = (i for i in range(10))
		yield 关键字
			记录数据
			并把数据存储到生成器对象中
			程序没有执行结束前会阻塞 程序结束会将结果生成器对象 返回
	如何获取生成器中的数据
		方式一
			next()
		方式二
			for循环
	案例
		生成批次数据
扩展迭代器
property介绍
	概述
		它可以修饰函数 实现把函数当做变量来用
	目的/好处
		简化编程
	用法格式
		充当解释器
@property
def age(self):
    return self.age
				@age.setter
def age(self, age):
    self.__age = age
			修饰类变量
				get 和set方法不变
				age = property(get_age, set_age)
			测试
				s= Student()
print(s.age)
s.age = 30
print(s.age)
正则表达式
	概述
		正确的 符合特定规则的字符串 -> 正则表达式
Regular Expresion -> re模块
		细节
			关于正则规则 多用 就慢慢记住了
			正则不独属于哪个语言
			Pyonthon中的正则
				math()
				search()
				complie().sun()
					简写成:sub()
					回顾replace()
		语法
			1.导包
				import  re
			2.正则匹配 查找 替换
				result = re.math(正则,,要检验的字符串, flags)
					全瓷匹配
				result = re.search(正则.要校验的字符串,flags)
					查找 分段匹配
				result= compile(正则表达式).sub(新字符串,旧字符串)
					替换
			3.result.group()
				获取到正则处理结果
		正确规则
			字符串
				 a           代表: 1个普通的字符a, 你还可以写 b, c, abc, 就是普通字符的意思.
				        .           代表: 任意的1个字符, 除了换行等.
				        \.          代表: 1个普通的.  一般邮箱中用
				        [abc]       代表: a,b,c任意的1个字符
				        [^abc]      代表: 除了a,b,c外, 任意的1个字符
				        \d          代表: 任意的1个数字, 等价于: [0-9]
				        \D          代表: 任意的1个非数字, 等价于: [^0-9]
				        \s          代表: 空白字符, \t, 空格, \n...
				        \S          代表: 非空白字符(\s取反)
				        \w          代表: 单词字符(非特殊字符), 即: 数字, 字母, 下划线, 汉字, 等价于: [a-zA-Z0-9_]
				        \W          代表: 特殊字符, 上述取反.
			首尾标记符
				^
				$
			数量词
				 ?            代表: 前边的内容出现 0次或者1次
				        *            代表: 前边的内容出现 0 - n次, 至少0次, 至多n次
				        +           代表: 前边的内容出现 1 ~ n次, 至少1次, 至多n次
				        {n}         代表: 前边的内容 恰好出现 n次
				        {n,}        代表: 前边的内容 至少出现n次, 至多无所谓
				        {n,m}       代表: 前边的内容 至少n次, 至多m次, 包括n和m
			分组相关
				|
					或
				()
					分组 默认最外层是 第0组
				\n
					(\n):这是一个普通的捕获组(capturing group),用于匹配换行符 \n。捕获组可以用于捕获匹配的内容,以便后续引用或进一步处理
					(?<=\n):这是一个正向预查(positive lookbehind)构造,用于匹配在某个位置之前必须存在的内容。具体来说,(?<=\n)表示在当前位置之前必须满足存在换行符
					(?=\n):这是一个正向预查(positive lookahead)构造,用于匹配在某个位置之后必须存在的内容。具体来说,(?=\n)表示在当前位置之后必须满足存在换行符 \n
				扩展
					(?P<分组名>)
					(?p=分组名)

坚持分享 共同进步 如有错误 欢迎指出

标签:__,代表,管理器,Python,age,第二十一,正则,上下文
From: https://blog.csdn.net/weixin_45423893/article/details/144318401

相关文章

  • Python 中的继承机制是什么样的?
    Python的继承机制允许一个类(子类)继承另一个类(父类或基类)的属性和方法。通过继承,可以实现代码复用,同时也能让代码结构更加清晰、易于维护。Python支持单继承和多继承,并且有丰富的特性来处理这些关系。继承的基本概念单继承:一个子类只继承自一个父类。多继承:一个子类可以从多......
  • 【python副业项目】第一篇:什么值得买多用户自动爆料工具
    今天分享一个自己长期在使用的工具,该工具旨在自动化处理商品爆料过程,通过解决用户登录、检查是否可以爆料以及提交爆料信息到“什么值得买”网站。历史爆料任务:可设置参数示意图:爆料过程日志:设计文档1.概述本系统为“什么值得买”(SMZDM)的自动爆料工具,允许用户通......
  • ESP32S3开发板连INMP441麦克风,并用MicroPython控制处理语音信号存为pcm格式文件
    本次实践的目标是:ESP32S3开发板连INMP441麦克风,并用MicroPython控制处理语音信号存为pcm格式文件。参考学习例子:使用ESP32与INMP441麦克风模块实现音频传输_esp32inmp441-CSDN博客 xiao_esp32s3板的说明:麦克风使用|SeeedStudioWiki 咨询AI的例子:https://skywalk.blog......
  • 【Python爬虫五十个小案例】Python提取某斗颜值主播图片~
    博客主页:小馒头学python本文专栏:Python爬虫五十个小案例专栏简介:分享五十个Python爬虫小案例前言在这个博客中,我们将详细讲解如何通过Python编写一个爬虫来从斗鱼平台抓取美女主播的图片。随着爬虫技术的普及,抓取互联网上的公开数据变得越来越容易,而斗鱼作为一个......
  • WxPython跨平台开发框架之用户选择和标签组件的设计
    在系统的权限管理中,往往都会涉及到用户的选择处理,特别是基于角色的访问控制中,很多情况下需要用到选择用户的处理。本篇随笔,基于WxPython跨平台开发框架,采用原有开发框架成熟的一套权限系统理念,对机构、用户、角色、权限、菜单、日志、字典等内容进行管理的,因此也涉及到了用户选择......
  • Python 潮流周刊#80:Django 项目性能调优(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。分享了12篇文章,12个开源项目,3则音视频,全文2100字。以下是本期摘要:......
  • [python]批量转换ncm格式文件
    前言最近想换用本地其它播放器听音乐,但网易云音乐下载下来的文件格式是.ncm,不兼容其它播放器。网上找了下方案,参考网易云音乐ncm格式分析以及ncm与mp3格式转换实现了基本功能,在此基础上加了个多进程同时转换,以及通过命令行传一些参数,比如并发执行数、输入输出目录路径。示例代码......
  • D90【python 接口自动化学习】- pytest基础用法
    day90pytest的setup,setdown详解(二)学习日期:20241206学习目标:pytest基础用法--pytest的setup,setdown详解(二)学习笔记:setup、teardown详解(二)函数级setup_function/teardown_function对每条函数用例生效(不在类中)importrequestsimportpytestdefsetup_function():......
  • D89【python 接口自动化学习】- pytest基础用法
    day89pytest的setup,setdown详解学习日期:20241205学习目标:pytest基础用法--pytest的setup,setdown详解学习笔记:setup、teardown详解模块级setup_module/teardown_module开始于模块始末,生效一次importpytestimportrequestsdefsetup_module():print("准备测......
  • python初学笔记
    1.python的安装通过csdn上的教程进行安装以及完成了环境的调配;2.python的基础认识Python是一种解释型、高级、通用的编程语言。它由GuidovanRossum于1989年发明,并于1991年首次发布。Python的设计哲学强调代码的可读性和简洁的语法,尤其是使用空格缩进来表示代码块,而非使用大......