Python
文章平均质量分 87
主要对python相关的知识的记录
夏天Aileft
杨柳春风一壶酒,江湖夜雨十年灯。
展开
-
Python进阶之-collections详解
Python中的collections模块提供了一些额外的数据类型:Counter、deque、OrderedDict、defaultdict、namedtuple以及在Python 3.7之后加入的ChainMap。这些数据类型补充了Python标准的内置数据类型,为不同场景提供了更优的数据结构解决方案。原创 2024-05-21 16:34:48 · 699 阅读 · 0 评论 -
Python进阶之-反射机制详解
什么是反射?Python中的“反射”是一个编程术语,它指的是程序在运行时能够检查和操作其自身状态的能力,特别是通过名称(通常是字符串)来访问对象的属性、方法和其他组成部分。这种机制允许代码动态地发现和使用它可能不知道名字的具体元素。原创 2024-05-12 09:00:00 · 731 阅读 · 0 评论 -
Python进阶之-inspect模块详解
Python中的inspect模块是用于获取对象的信息的模块,比如查看源代码、列出成员、检查类和函数的参数等,非常适用于调试和反射(introspection)。接下来,我会详细解释inspect模块,并结合例子说明一些常用的方法。inspect 模块的主要功能包括:获取对象信息:可以获取对象的类型、名称、模块、源代码等信息。获取函数和方法的参数信息:可以获取函数或方法的参数列表、默认参数值、注解等信息。获取类的继承关系和属性信息:可以获取类的基类、方法、属性等信息。原创 2024-05-11 10:00:00 · 768 阅读 · 0 评论 -
Python进阶之-paramiko详解
ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作。原创 2024-05-09 10:41:44 · 789 阅读 · 0 评论 -
Python进阶之-hashlib详解
在计算机科学中,“哈希” (Hash) 是一种算法,它接受输入(或者“消息”),并返回一个固定长度的字符串,这个字符串称为输入的 “哈希值” 或者 “消息摘要” (Message Digest)。哈希函数的设计目的是尽可能快地将任意长度的数据转换为固定长度的输出结果,通常输出的哈希值远小于输入数据。原创 2024-05-08 15:38:44 · 1088 阅读 · 0 评论 -
Python进阶之-jinja2详解
Jinja2 是一个强大的 Python 模版引擎,主要用于生成HTML或其他文本文件。这个库非常适合开发动态网站和Web应用的视图层,因为它支持逻辑操作如循环和条件判断,还可以继承和重用模板。Jinja2以其灵活性和性能著称。jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,由于其灵活,快速和安全等优点被广泛使用。原创 2024-05-07 11:33:59 · 1029 阅读 · 0 评论 -
Python进阶之-上下文管理器
在Python中,上下文管理器是支持with语句的对象,用于为代码块提供设置及清理代码。上下文管理器广泛应用于资源管理场景,例如文件操作、网络连接、数据库会话等,其目的是确保如文件或网络会话等资源的正确获取和释放,即使在发生异常时也能保证这点。要创建自定义上下文管理器,你可以定义一个类并实现__enter__和__exit__方法。""""""")")return False # 如果返回True,则异常不会被重新抛出;否则会被抛出。")原创 2024-05-06 17:53:43 · 939 阅读 · 1 评论 -
Python进阶之-ast使用详解
ast模块在Python中用于将源码转换成抽象语法树(Abstract Syntax Trees,AST)。通过AST,我们可以读取、修改、分析Python代码。本质上,它将源码转化为树形结构,节点代表语法构造,如表达式、语句等。这对于编写代码分析、优化工具或自动代码生成等任务非常有用。抽象语法树(AST)组成部分Expression: 在Python的AST中,Expression节点表示一个表达式。这里,它是整个AST的根节点。Expression节点有一个body属性,用于存储表达式的主体。原创 2024-05-04 09:52:01 · 881 阅读 · 0 评论 -
Python进阶之-traceback详解
在日常开发中,我们会做一些基本的异常处理,但是有时候只能打印我们处理的结果或者将异常打印出来,不能直观的知道在哪个文件中的哪一行出错。在Python中,traceback是一个用来跟踪异常错误信息的标准库,常用于异常处理和调试。它可以帮助开发者了解异常发生的上下文,并提供关于异常发生处的调用堆栈的信息。在实际开发中,通过使用traceback模块,可以更清晰地看到错误发生的位置及其前后调用关系,从而帮助快速定位并修复问题。原创 2024-04-30 09:30:00 · 1187 阅读 · 0 评论 -
Python进阶之-Enum(枚举)
枚举(Enumeration)是一种数据类型,其中每个枚举值都是一个实例,都代表该数据类型的一个可能的值。在很多编程语言中,比如C、Java、C#和Python等,枚举都得到了支持,枚举成员常常用于代替一组硬编码的常量。枚举是一种编程模式,用于定义一组有限、固定且通常不可变的值 的集合。这些值称为枚举的成员(或元素)。枚举的每个成员都有一个名称和一个相关联的数值(可以是整数、字符串或任何其它字面量)。原创 2024-04-29 10:00:00 · 954 阅读 · 0 评论 -
Python实现定时器的几种方式(超详细)
在Python编程中,定时器是一种非常有用的工具,用于执行特定任务或函数,例如定时任务、轮询操作、定时检查等。Python提供了多种方式来创建和使用定时器,本文将介绍一些高级的定时器使用方式,包括使用threading模块、使用schedule库以及在异步编程中使用定时器。定时器是Python编程中的一个重要工具,用于执行定时任务和操作。本文介绍了多种高级的定时器使用方式,包括使用 threading 模块、schedule 库以及在异步编程中使用定时器。选择合适的方法取决于具体需求和项目的要求。原创 2024-04-26 11:30:42 · 1359 阅读 · 0 评论 -
Python学习之-chardet详解
当处理文本数据时,经常会遇到各种不同的字符编码。这可能导致乱码和其他问题,因此需要一种方法来准确识别文本的编码。Python中的chardet库就是为了解决这个问题而设计的,它可以自动检测文本数据的字符编码。这在处理未知编码的文本数据时尤其有用。chardet背后的原理是基于一系列的编码检测算法,这些算法试图最佳估算文本的编码类型。以下是chardet的一些基本使用方法。原创 2024-04-24 10:00:00 · 497 阅读 · 0 评论 -
Python学习之-描述符详解
什么是描述符?在Python中,描述符是对多个属性访问操作的方法集合的形式化。简而言之,描述符让你能够控制属性的访问、设置、删除等操作。Python的描述符是实现了特定协议的对象,这个协议包括__get__、__set__和__delete__方法。通过这些方法可以在属性访问时定义自定义行为,这为Python的属性访问提供了极高的灵活性。原创 2024-04-20 08:00:00 · 569 阅读 · 0 评论 -
Python学习之-typing详解
Python的typing模块自Python 3.5开始引入,提供了类型系统的扩展,能够帮助程序员定义变量、函数的参数和返回值类型等。这使得代码更易于理解和检查,也方便了IDE和一些工具进行类型检查,提升了代码的质量。typing 模块是 Python 标准库中用于支持类型提示的模块。它提供了一系列的类型和类型相关的工具,帮助开发者在代码中添加类型提示,以提高代码的可读性和可靠性。"""# @File :"""print(stack.pop()) # 输出1。原创 2024-04-18 00:00:00 · 1264 阅读 · 0 评论 -
Python学习之-psutil详解
psutil(process and system utilities)是一个跨平台的库,用于访问系统运行中进程以及系统利用率(如CPU、内存、磁盘、网络等)的信息。它主要用来做系统监控,性能分析,进程管理。psutil支持多个平台,包括Linux、Windows、MacOS、FreeBSD等。原创 2024-04-15 10:07:27 · 513 阅读 · 0 评论 -
Python学习之-Pandas详解
Pandas 是一个开源的 Python 数据分析库,它提供了高性能、易于使用的数据结构和数据分析工具。Pandas提供 了方便的类表格和类SQL的操作,同时提供了强大的缺失值处理方法,可以方便的进行数据导入、选取、清洗、处理、合并、统计分析等操作。最核心的两个数据结构是 DataFrame 和 Series。以上只是pandas的一些简单的应用,实际pandas的功能远不止于此,对于有兴趣的朋友可以继续深入了解pandas的应用。Pandas 的一些关键特性和功能的总结。核心数据结构。原创 2024-04-14 15:06:14 · 1236 阅读 · 0 评论 -
Pycharm通过配置隧道连接远程服务器
上篇有说到局域网windows和服务器互通的情况下连接远程pycharm,这次咱们来说下通过跳板机的方式连接服务器如何做到windows远程连接到服务器。原创 2024-04-13 08:00:00 · 304 阅读 · 0 评论 -
Python学习之-Property详解
在Python中,property 是一种内置的装饰器,它可以将类的方法转换为属性,让你在不改变类接口的情况下添加额外的逻辑,如输入值的验证、取值的计算等。property 可以作为一种方式让你的类接口保持清晰且易于使用。property 装饰器最常见的应用场景是将类的属性封装起来,提供getter 和 setter 方法。这种方式的原因是,你可以对属性赋值或者取值的代码进行控制,而不是直接暴露属性。原创 2024-04-13 00:00:00 · 1222 阅读 · 0 评论 -
Python学习之-matplotlib详解
用途广泛: Matplotlib 被广泛用于数据可视化,支持多种图表类型,例如线图 (line plots)、散点图(scat-ter plots)、条形图 (bar charts)、饼图 (pie charts)、直方图 (histograms)、箱线图 (box plots)、热图 (heatmaps)、子图 (subplots) 等。原创 2024-04-12 00:00:00 · 1284 阅读 · 0 评论 -
Pycharm远程连接服务器配置详解
以上是本地windows和服务器是在一个局域网的情况下的连接,可以使用这种方式来实现远程开发。那如果服务器和本地windows不在一个局域网内呢?原创 2024-04-10 10:31:27 · 1083 阅读 · 0 评论 -
Python学习之-pyechart详解
什么是pyechart?Pyecharts 是一个用于生成 Echarts 图表的 Python 库。Echarts 是一个由百度开源的数据可视化工具,它提供的图表种类丰富,交互性强,兼容性好,非常适合用于数据分析结果的展示。Pyecharts 作为 Echarts 的 Python 接口,它允许用户通过书写 Python 代码来创建各种炫酷的图表。使用步骤:使用 Pyecharts 创建图表的基本步骤通常包括:导入相应的图表类创建一个图表对象添加数据和配置项渲染图表到文件。原创 2024-04-11 00:00:00 · 1414 阅读 · 0 评论 -
Python学习之-logging模块及彩色日志详解
Python的logging模块是内建的、功能强大的日志系统,可通过简单的配置,就能满足基本到复杂的日志管理需求。它可以让你以各种方式记录错误、调试信息、以及其他运行时的信息,这些都是应用程序健壯性、可维护性的关键。原创 2024-04-08 21:48:40 · 649 阅读 · 0 评论 -
Python学习之-Pydantic详解
Pydantic 是一个 Python 库,用于数据解析和验证。它主要基于 Python 类型提示来实现数据的校验和设定限制条件。在 Pydantic 中,BaseModel 是一个核心基类,用于创建数据模型。Pydantic 的主要优势在于其结合了灵活性和强大的数据处理能力,同时简化了常规的数据校验任务,让开发人员更专注于业务逻辑的实现。它通常用于快速开发中,特别是在构建API、数据交互和设置管理场景中发挥重要作用。原创 2024-04-08 09:23:32 · 1640 阅读 · 1 评论 -
Python学习之-私有变量、方法
在Python中,不像一些其他编程语言如Java或C++,并没有严格意义上的“私有”函数。不过,Python有一种约定俗成的做法来指示一个函数是私有的,这意味着它不应该被外部访问。在Python中,如果你想定义一个私有函数,你可以在函数名称前加上两个下划线__。这会触发一个名字改编(name mangling)的过程,使得这个函数在外部不容易被直接访问。这种机制的目的是为了“伪私有”,实际上是提供了一种弱保护措施来避免子类意外覆盖基类的方法。原创 2024-04-08 01:45:00 · 370 阅读 · 0 评论 -
Python学习之-魔术方法
Python 中的魔术方法(Magic Methods),也称作特殊方法(Special Methods),是那些被双下划线包围的方法,例如init。这些方法在 Python 中有特殊的含义,它们并不需要直接调用,而是在特定的情境下自动触发。通过定义或重写这些方法,可以自定义对象的行为,包括迭代、函数调用、属性访问等多种操作。对象的创建和销毁:控制对象的创建 (new)、初始化 (init) 和销毁 (del) 的过程。对象表示:定制对象的字符串表示,包括通过str。原创 2024-04-07 10:55:12 · 908 阅读 · 0 评论 -
Python学习之-深拷贝和浅拷贝
Python中的拷贝主要分为浅拷贝(shallow copy)和深拷贝(deep copy),它们在处理复杂对象(例如包含其他对象的对象)时的行为有明显差异。浅拷贝仅复制对象的第一层,而深拷贝则递归地复制对象的所有层级。理解这两种复制方法对于处理复杂的数据结构至关重要。原创 2024-04-06 08:37:20 · 701 阅读 · 0 评论 -
Python学习之-迭代器和生成器
在Python中,迭代器(Iterator)和生成器(Generator)是实现迭代协议的对象,用于遍历集合中的元素。它们之间有联系,但也有一些关键的差异。迭代器和生成器都允许你对一系列数据进行迭代,但生成器提供了一种更简便,内存高效的方式来实现迭代器的功能。当你需要一个简单的迭代器并且不想实现类时,生成器是一个非常好的选择。适用场合包括处理大数据流、文件处理、网络通信等等。原创 2024-04-04 00:00:00 · 1101 阅读 · 1 评论 -
Python学习之-Pyqt5 UI控件详解
工作中有很多使用Pyqt5开发UI小工具的小伙伴,或者刚刚接触Pyqt5的小伙伴来说,PyQt5提供了丰富的控件和功能,可以帮助我们轻松地构建功能强大且吸引人的应用程序,而Qtdesigner提供了我们设计和维护UI界面,下面让我们来详细了解下Pyqt5中每个控件的作用吧,希望对各位在使用Pyqt5上有帮助。每种按钮组件都是为了适应不同的界面交互设计需求。通过信号和槽机制,开发者可以轻松地将按钮的用户交互转化为应用程序的逻辑反应。原创 2024-04-03 00:00:00 · 1514 阅读 · 0 评论 -
Python学习之-协程
在Python中,协程(coroutines)是利用生成器(generator)的特性,来实现并发编程的一种方式。从Python 3.5开始,通过引入async和await关键字,Python对异步IO提供了更原生的支持,使得协程成为了实现异步编程的首选方式。协程提供了比线程更轻量级的并发,它们在单线程内执行,但在等待IO操作(如网络请求、数据库查询等)的同时,可以让出控制权,这样CPU就可以去做其他的计算任务,提高了程序的执行效率和响应速度。原创 2024-04-01 10:08:39 · 895 阅读 · 0 评论 -
Python学习之-继承和多态
什么是继承?什么是多态?面向对象的三大特性:封装:根据 职责 将属性和方法封装到一个抽象类中继承: 实现代码的重用,相同的代码不需要重复的编写多态: 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度继承继承是一种机制,它使得一个类(称为子类或派生类)能够继承另一个类(称为父类或基类)的属性和行为(方法)。子类除了可以继承父类的功能外,还可以添加新的功能或重写某些功能。单继承: 当一个类仅继承自一个父类时。多继承: 当一个类继承自多个父类时。原创 2024-04-02 00:00:00 · 1783 阅读 · 0 评论 -
Python学习之-正则表达式
在python中使用的是re模块对正则表达式提供支持,下面我来讲解一些日常中比较常用的几种正则表达式的方法,希望对各位日常的工作中有帮助。常见的正则表达式的操作:\d匹配任何十进制数字,相当于[0-9]。示例:\d+ 匹配一个或多个连续的数字。\D匹配任何非数字字符,相当于[^0-9]。\w匹配任何字母数字字符,包括下划线,相当于[A-Za-z0-9_]。示例:\w+ 匹配一个或多个字母数字字符或下划线。\W。原创 2024-03-27 16:56:11 · 1255 阅读 · 0 评论 -
Python学习之-推导式
优点:简洁性:推导式可以用单行代码替代多行的循环语句,从而使代码更加简洁、清晰。易读性:对于熟悉Python语言的开发者来说,推导式提供了一种容易理解并且直观表达序列操作的方法。性能:推导式通常比等价的循环语句执行得更快,因为它们是优化过的内建操作。表达力:推导式允许开发者编写出表达性强的代码,很容易将算法或逻辑表达为一个简洁的构造。灵活性:推导式可以嵌套使用,允许进行复杂的计算。缺点:可读性:对于不熟悉推导式的人来说,过于复杂的推导式可能难以理解,从而降低代码的可读性。原创 2024-03-28 14:29:04 · 660 阅读 · 0 评论 -
Python学习之-装饰器
在说装饰器之前,我们先来了解一下闭包的概念。闭包(Closure)定义:闭包是函数式编程的概念,在 Python 中指的是在一个外部函数中定义的内部函数,这个内部函数引用了外部函数的变量(状态),即使外部函数已经执行完毕,这些变量的状态仍然被保持,可以通过内部函数来访问。作用:闭包允许你保存函数的状态,从而在函数执行完毕后仍然能够访问其内部状态。')printer()在这个例子中,inner_function() 是一个内嵌在 outer_function() 中的函数。原创 2024-03-30 08:00:00 · 1167 阅读 · 0 评论 -
Python学习之-lambda表达式
Python 的 lambda 表达式是一种匿名函数的快捷方式,它允许你在代码中快速定义单行的小函数。lambda 表达式的语法非常简洁:它仅使用 lambda 关键字 followed by one or more arguments, a colon :, and the expression to evaluate and return. 这使得 lambda 表达式尤其适合于需要函数对象的地方,比如map()、filter()及排序操作等,而不必正式地定义一个函数。原创 2024-03-29 10:30:00 · 1121 阅读 · 0 评论 -
Python学习之多线程、多进程
在了解本章之前,我们先来了解下什么是线程和进程:在计算机科学中,进程和线程是执行程序的基本单元,它们在操作系统的管理下运作,但它们之间有着本质的区别。理解进程和线程的概念对于进行有效的程序设计和系统管理非常重要。进程(Process)进程可以被理解为一个运行中的程序的实例。它是系统资源分配和执行的基本单位。原创 2024-03-31 10:03:21 · 1231 阅读 · 0 评论 -
【从脚本到软件包:打造你的第一个Python RPM】
执行打包命令,可以在RPM按照的SPECS目录下执行,也可以在脚本目录执行都可以,前提是需要存在打包的spec文件,我这里直接在脚本目录打包,需要注意的是:打包的spec文件需要和打包的二进制文件同一个命名。编译成功之后会在该目录生成这个rpm文件包,(X86和ARM不在同一个目录,可自己查看编译后的路径)可下载执行rpm -ivh 安装,如果之前有安装过可添加rpm -ivh --force参数。打包成功之后会在打包目录生成一个dist文件夹,这个就是打包成功之后的二进制文件。就是你需要打包的py文件。原创 2024-03-15 15:43:13 · 332 阅读 · 1 评论 -
Aarch64 架构Centos解决PyQt5不能安装问题
当你的环境安装PyQt5遇到如下问题的话,恭喜你,你需要手动安装编译pyqt5了,以下是整理安装过程中遇到的深坑。按照如下步骤配置,99%能解决安装过程中遇到的问题。3.安装qmake(上面安装PIP3安装pyqt5报红个人分析就是因为没有qmake导致),上述的操作步骤都是为了下面安装qmake做的铺垫。如果有提示如下的报错,说明还有xcb的依赖没有安装上,这里再执行后面的步骤是没有任何作用的,需要再解决对应的依赖。在安装执行需要先安装SIP和wheel,因为pyqt5的安装需要依赖这两个包。原创 2024-03-13 22:44:13 · 584 阅读 · 0 评论