
Python
文章平均质量分 90
暂无
ZeroHeroX
这个作者很懒,什么都没留下…
展开
-
Socket 传情:使用 Python 发送 GET 请求
根据 HTTP/1.1 规范,Host 请求头在请求报文中是 必需的。指定了目标主机及端口号(HTTP 协议默认使用 80 端口),并且在使用 HTTP/1.1 版本的协议中,该字段是 强制性 的。根据 HTTP/1.1 规范,如果服务器接收到的请求没有 Host 请求头字段,服务器应该返回状态码为 400 Bad Request 的响应,表示 请求有误。HTTP 协议规定在 HTTP 报文中,应使用 `CRLF(\r\n)` 作为行结束符。原创 2023-06-16 18:27:11 · 1270 阅读 · 0 评论 -
Python 类型检测:isinstance() 与 type()
isinstance() 函数用于检查一个对象是否是指定类或其子类的实例。它会考虑继承关系,如果对象是指定类或其子类的实例,返回 True,否则返回 False。type() 函数用于获取对象的实际类型,不考虑继承关系。它返回的是对象的实际类型,而不是对象所属的类或其父类。在 Python 中,我们可以通过 继承(Inheritance) 来创建一个类从另一个类派生的子类。子类继承了父类的属性和方法,并且可以添加自己特定的属性和方法。原创 2023-06-16 10:52:59 · 994 阅读 · 0 评论 -
Python 内幕揭秘:深度刨析 Windows 系统下的 os.path.join()
在 Windows 系统中,os.path.join() 的本质是 ntpath.join()。os.path.join()函数的实现依赖于不同的操作系统和底层文件系统。在Windows 操作系统中,os.path.join() 使用 ntpath.py 内置模块来处理路径;而在 POSIX 系统(类 Unix 系统)中,则使用 posixpath.py 内置模块来处理路径。原创 2023-06-15 10:03:54 · 2127 阅读 · 0 评论 -
Python 内幕揭秘:深度刨析类 Unix 系统下的 os.path.join()
在 POSIX 系统(类 Unix 系统)中,os.path.join() 使用 posixpath.py 内置模块来处理路径。在 类 Unix 系统中,os.path.join() 的本质是 posixpath.join()。os.path.join()函数的实现依赖于不同的操作系统和底层文件系统。在Windows 操作系统中,os.path.join() 使用 ntpath.py 内置模块来处理路径;而在 POSIX 系统(类 Unix 系统)中,则使用 posixpath.py 内置模块来处理路径。原创 2023-06-13 11:36:26 · 742 阅读 · 0 评论 -
Socket 编程:基础概念辨析
BSD UNIX 的套接字 API 成为了其他操作系统的基础,并逐渐演化成为了现代操作系统中使用的标准网络编程接口。BSD UNIX 的套接字 API(Application Programming Interface) 定义了一组函数和数据结构,用于创建、绑定、连接、发送和接收数据等操作。这些 API 为网络编程提供了底层的支持,使得开发者可以使用套接字进行跨网络的通信。套接字(Socket) 是一种 抽象的通信端点,用于在计算机网络中进行 进程间的通信。套接字提供了一种编程接口,允许不同的计算机通过网络原创 2023-06-12 18:11:32 · 765 阅读 · 0 评论 -
Socket 传情:用 Python 编织 TCP 网络
创建一个监听套接字对象,指定地址族(IPV4 或 IPV6)和套接字类型(TCP 套接字 或 UDP 套接字)。通过使用 bind() 方法为监听套接字指定套接字地址。调用 listen() 方法以指示监听套接字 开始 对客户端的连接请求进行监听。通过调用 accept() 方法接受客户端的连接请求,该方法将返回一个连接套接字及客户端套接字的套接字地址。通过连接套接字与客户端进行通信,使用 recv() 方法接收客户端发送的数据,使用 send() 方法向客户端发送响应。重复步骤 5,直到通信完成。关闭服务原创 2023-06-12 17:49:42 · 1684 阅读 · 0 评论 -
从装饰器到成员方法
装饰器提供了一种简洁和灵活的方式来修改函数或类的功能,而 无需 对它们的 源代码 进行 直接修改。它们通常用于实现 横切关注点(Cross Cutting Concerns,横切关注点指的是在软件系统中与核心业务逻辑无关但又需要被多个模块或组件共享的功能或逻辑。) 的功能,例如日志记录、性能测量、输入验证等。成员方法(Member Methods) 是面向对象编程中类的一部分,是定义在类中的函数。成员方法用于操作 类 或 实例对象,并可以访问类或实例对象的属性和其他成员方法。原创 2023-05-27 10:10:26 · 853 阅读 · 0 评论 -
成员属性辨析:Python 中的实例属性与静态属性
在 Python 中,成员属性指的是 类 或 对象 所拥有的 属性,成员属性用于表示和存储类或对象的 状态。Python 中的成员属性可以分为两种类型,即 实例属性 和 静态属性。实例属性是绑定在 特定对象 上的属性,由同一个类实例化产生的每个对象都可以具有 不同的实例属性值。实例属性在类的方法中通过 self 关键字进行 访问 和 设置,每个对象都拥有自己的一组实例属性。在 Python 中,静态属性是类级别的属性,它属于类本身而不是类的实例。静态属性在所有类的实例之间共享,并且可以通过类或实例使用 点运原创 2023-05-26 20:52:44 · 1027 阅读 · 0 评论 -
遍历 locals() 时可能产生的 RuntimeError
在 Python 中,你可以通过在局部作用域中调用 locals() 来更新与局部命名空间相关联的字典,使其内容与局部命名空间中的内容保持一致。在迭代 locals() 函数时,可能将引发 RuntimeError。其原因是,在迭代过程中产生的迭代变量将注册至当前作用域中,若在循环体中调用 locals() ,使得 locals() 字典更新,将导致被迭代字典对象的结构发生改变,从而引发了 RuntimeError 异常错误。原创 2023-05-25 20:49:50 · 658 阅读 · 0 评论 -
双面间谍:不同作用域下的 locals() 函数
局部作用域下的 locals() 返回的是与局部作用域相关联的命名空间字典,该字典是静态的。这意味着,字典中的内容并不与实际命名空间中的变化保持同步。全局作用域下的 `locals()` 返回的是与全局作用域相关联的命名空间字典,该字典是动态的(这一点与 Python 提供的 globals() 内置函数是相同的)。这意味着,字典中的内容时刻与实际命名空间中的变化保持同步。原创 2023-05-25 15:25:34 · 784 阅读 · 0 评论 -
遍历 globals() 时必不可少的 RuntimeError
字典在内部使用 散列表(也被称为哈希表) 来实现 键值对 的 存储 和 查找。散列表的 工作原理 涉及将键通过哈希函数转换为索引,然后在存储桶中存取相应的值。散列表的结构在 迭代过程 中是 敏感的。当你在迭代字典的 视图对象(字典提供的视图对象是动态的、实时反映字典内容变化的可迭代对象) 时,若 添加 或 删除 字典中的条目,会导致 字典的结构发生变化。当你迭代字典提供的视图对象时,迭代器会维护一个 内部状态 来跟踪字典的条目。如果在迭代过程中修改字典的大小,迭代器的内部状态与字典的实际状态将不再一致。原创 2023-05-25 10:12:34 · 1239 阅读 · 0 评论 -
小蝌蚪找妈妈:Python之作用域链与 LEGB 原则
作用域链是描述变量查找的顺序,它根据 LEGB 原则形成。当在代码中引用一个对象时,Python 会 按照 LEGB 的顺序进行对象的查找,直到找到 第一个匹配 的变量。在 Python 中,内置作用域对象可以通过访问全局变量 __builtins__ 来进行访问。__builtins__ 是一个特殊的全局变量,它指向一个模块对象,该模块对象包含了 Python 的内置对象。在 Python 中,每当函数被调用时,都会为其创建一个新的局部作用域对象。这意味着 每个函数 都有自己的 独立的 局部作用域,其中定原创 2023-05-24 20:20:01 · 792 阅读 · 0 评论 -
可远观而不可亵玩焉:Python 中的自由变量
在 Python 中,自由变量是在函数内部引用但没有在函数内部定义的变量,它们在函数外部的作用域中定义。自由变量可以是全局变量或局部变量。当在函数内部引用一个变量时,Python 首先在函数的局部作用域中查找该变量。如果没有找到,它会继续在外部作用域中查找。这种查找过程会持续到 找到变量 或达到全局作用域(更准确来说,应该是达到 内置作用域)。在默认情况下,Python 仅允许局部作用域访问自由变量,但不支持修改自由变量的值。当在函数内部修改自由变量时,Python 不允许 直接修改自由变量所保存的引用(内原创 2023-05-22 17:03:42 · 1354 阅读 · 0 评论 -
灵魂拷问:如何优雅的与 Python 说再见?
os._exit() 函数是通过系统调用的方式来退出 Python 的。_exit() 函数同时存在于 posix 和 nt 模块中。在导入 os 模块后,该模块将会尝试从 posix 或 nt 模块中导入 _exit() 函数并将该函数添加至 __all__ 中,以使得导入 os 模块的文件也能够导入 _exit() 函数。在Python中,SystemExit 异常是一个特殊的异常,它被引发时会导致Python解释器退出。它继承自 BaseException,而不是 Exception,这意味着它不是一原创 2023-05-10 19:55:07 · 1117 阅读 · 0 评论 -
作为一等公民的 Python 函数
一等公民是指在编程语言中,某一类元素拥有与其他元素同等的地位和权利。这意味着这类元素可以作为参数、返回值、变量或者数据结构的元素来使用,也可以在运行时被创建、修改或者销毁。具体而言,一等公民是指语言中的 基本元素,可以被赋值、传递、返回,可以在运行时动态创建和修改,并且可以作为其他函数的参数和返回值。一等公民具有如下基本权益:作为函数的参数进行传递。作为函数的返回值进行返回。作为数据结构中的元素。能够被赋值给变量。能够被动态创建和修改原创 2023-05-09 11:31:12 · 854 阅读 · 2 评论 -
迭代探幽:生成的灵感,迭代的新境
惰性求值(Lazy evaluation) 是一种计算策略,它延迟计算表达式的值,直到实际需要时才进行计算。在惰性求值中,表达式的值不会立即被计算和存储,而是在需要使用该值的时候才进行计算。惰性求值的主要思想是避免不必要的计算,节省计算资源和提高性能。它适用于处理大型数据集、无限序列或复杂的计算任务,其中一次性计算所有值可能会导致内存不足或计算时间过长。通过惰性求值,可以将计算分解成更小的步骤,在需要时按需生成结果。这使得程序能够更高效地处理数据,避免不必要的计算开销。原创 2023-05-07 14:54:00 · 531 阅读 · 0 评论 -
全局单身汉:深入理解 Python 中的单例对象
节约资源。单例对象只有一个实例,可以减少内存占用和系统资源的使用,特别是在需要创建多个相同实例的场景下,使用单例对象可以显著减少系统开销,提升程序的性能和效率。提供全局访问点。由于单例对象只有一个实例,可以在程序中任何需要访问该对象的地方提供一个全局访问点,简化程序的逻辑和开发难度。保证对象的唯一性由于单例对象只有一个实例,可以确保对象的唯一性,避免由于多个实例之间的状态变化导致程序出错的情况。原创 2023-05-05 22:13:52 · 813 阅读 · 0 评论 -
Python 进制转换,一步到位
进制转换是指将一个数值从一种进制表示转换为另一种进制表示的过程。 在计算机科学中,进制转换是一个非常常见的操作,因为 不同的进制数在不同的应用场景中都有其独特的优势。Python 中提供了实现进制转换的多种方式,大致有:专门用于实现进制转换的内置函数、format() 函数及自定义函数。除了使用 Python 提供的各种内置函数外,你还可以基于进制转换间的原理实现自己的进制转换函数。原创 2023-05-03 19:12:38 · 4608 阅读 · 0 评论 -
Python ZIpFile 解惑:GBK 编码与乱码现象
在使用国内主流的 Zip 压缩软件将文件进行压缩后,若使用 Python 模块 ZipFile 对 Zip 文件中被存储文件的名称进行提取,往往会产生乱码现象。通用位标志 (General Purpose Bit Flag) 是一组用于 ZIP 文件头部的二进制位标记,大小为两个字节(即 16 bits),用于指示 ZIP 文件中的各种信息。用于指示 ZIP 文件中的文件名和注释信息采用的字符编码方式是否为 UTF-8。在中国地区,许多压缩软件默认使用 GBK 编码方式来处理文件名。原创 2023-04-24 15:43:55 · 2785 阅读 · 0 评论 -
解压你的压缩:Python ZipFile 实战指南(一)ZipFile 类和它的参数们
ZipFile 类是 zipfile 模块中最重要的类之一,它提供了一系列的方法,用于创建、读取和解压缩 Zip 文件。Zip64 格式使用 8 字节的字段来存储文件大小和位置,可以处理更大的文件和归档文件。ZipFile 类的 compression 参数用于指定压缩文件时使用的压缩算法,它可以被设置为以下四个值之一:ZIP_STORED、ZIP_DEFLATED、ZIP_BZIP2 或 ZIP_LZMA。中央目录结构是 ZIP 文件格式的一部分,它存储了 ZIP 文件中包含的所有文件和目录的元数据信息。原创 2023-04-22 20:29:37 · 8553 阅读 · 0 评论 -
寻找时间的痕迹:Python 与文件时间戳
在计算机中,文件时间戳(File Timestamp)是指用于记录文件在不同时间点的状态和属性的信息。在 Linux 操作系统中,你可以使用前面讲到的各种用于获取创建时间戳信息的来获取元数据更改时间戳。除了通过文件元数据信息获取时间戳信息外,我们还可以通过 os.path 模块中提供的函数直接获取目标类型的文件时间戳。os 模块提供了 utime() 函数,使用该函数我们将能够修改文件的访问时间戳及修改时间戳信息。原创 2023-04-22 11:09:49 · 803 阅读 · 0 评论 -
程序员的保险箱:Python 中的只读映射数据类型
只读映射数据类型是指一种特殊的映射数据类型,它提供了一种只读的访问方式,即不能对映射数据类型进行任何的修改操作。只读映射数据类型是只读的,不支持修改操作。避免了多线程或者多进程的锁竞争,提高了程序的并发性能。多个线程可以同时访问只读映射数据类型,而不会导致数据冲突或竞争条件。当我们创建一个只读映射数据类型时,它会引用原字典的哈希表对象,而不会复制一份新的数据结构。由于只读映射数据类型与原映射数据类型共享底层数据结构,它们之间的数据始终保持一致,这有助于提高程序的安全性和可维护性。原创 2023-04-20 23:32:33 · 353 阅读 · 0 评论 -
Python namedtuple:构建更清晰、更易于维护的代码
具名元组中的元素是具有名称的。具名元组继承自 Python 内置的元组,在此基础上还添加了许多有用的特性。在大多数情况下,namedtuple 的性能与 Python 内置的元组类型相当。 这是因为 namedtuple 是继承自 Python 内置的元组的子类,并且在实现上使用了C 语言。对于大多数应用程序来说,namedtuple 与普通元组的性能差异非常小。原创 2023-04-20 19:04:19 · 551 阅读 · 0 评论 -
像素的奇妙冒险:使用 Python 玩转彩色图片的灰度处理
在将 RGB 转换为灰度值时,常使用心理学灰度加权公式进行两者的转换。心理学灰度加权公式是一种常用的计算灰度值的方法,用于将彩色图像转换为灰度图像。它考虑了人眼对不同颜色的感知程度不同,将红、绿、蓝三种颜色的值加权求和,得到一个综合的灰度值。在心理学加权灰度公式中,绿色的权重值相比其他两种颜色更高是因为 人眼对于绿色的敏感度更高。绿色的权重值更高意味着在进行灰度值的计算时,绿色通道的取值会对最终的灰度值产生更大的影响,从而更加符合人眼对图像的感知。原创 2023-04-18 20:18:33 · 702 阅读 · 0 评论 -
从容应对 KeyError:Python 中的 defaultdict 模块
defaultdict 是 Python 标准库 collections 模块中的一种字典类型,它提供了一种更加便捷的方式来处理字典中的缺失键值对。当我们使用普通的字典对象访问一个不存在的键时,Python 将抛出一个 KeyError 异常。而使用 defaultdict 模块,你将能够通过提供一个可调用对象以在访问一个不存在的键时向用户提供一个默认值并将相关的键值对添加到 defaultdict 字典中。原创 2023-04-15 10:01:00 · 759 阅读 · 2 评论 -
搞定重复计数:Python 中的 Counter 模块
Counter 模块是 Python 内置的一个高效计数工具,可以快速统计序列中元素的数量。它基于字典实现,提供了一系列常用方法,如most_common()、elements()、total()等,支持单目运算、加减法运算、集合运算、比较运算等。文章介绍了 Counter 的基本概念,包括 Counter() 对象、字典、魔术方法__missing__()、update() 方法等;并对常用方法进行了详细说明,同时介绍了 Counter 对象间的运算和比较,帮助读者更好地理解 Counter 的使用和应用原创 2023-04-14 22:45:31 · 3740 阅读 · 2 评论 -
Python 项目之实现文件内容的反转再输入(二)逐行实现
1.从目标文件的起始位置开始读取每一行内容,将读取到的内容进行反转并 追加 到 结果文件中。2.将目标文件中的内容划分为以行为单位的列表元素,再将列表元素进行反转。在将列表中的元素依次输入到结果文件中前,将元素再一次进行反转。3.将目标文件中的内容划分为以行为单位的列表元素,再将列表元素进行反转。将读取到的结果反转并从结果文件的起始位置写入到目标文件中。原创 2023-04-02 11:04:56 · 384 阅读 · 0 评论 -
Python 与其四大推导式(列表推导式,集合推导式,生成器推导式及字典推导式)
列表推导式是 Python 官方提供的一种相对更为快捷的创建列表的方式,使用列表表达式你将能够写出更加优雅(更具有可读性,也相对更为简洁)的代码。在复杂的编程任务中,使用列表推导式来进行目标的达成,于人于己都将是一种享受。用于承接从序列中取出的元素的循环变量将被定义在其所处的环境中,这意味着循环变量可能会修改已定义的同名变量的值。在循环过程中,循环变量的改变会导致已有的同名变量发生改变,导致变量被污染。内的偶数的平方的列表。循环语句并在合适的位点使用合适的循环变量(列表推导式中,相邻的两个。原创 2023-03-30 00:00:19 · 965 阅读 · 0 评论 -
Python 项目之实现文件内容的反转再输入(一)完全反转
本项目的目的是将目标文件中的内容进行反转并将反转结果输出到另一个文件(结果文件)中。虽然项目看起来较为简单,但我们将通过三种方式(完全反转、逐行实现及逐字实现)来对此进行实现,并在实现过程中对相关知识进行相应的延展,在最后,我们还将对比三种方式的优劣及其适应场所,相信这能使我们对 Python 中与文件读写的相关操作有更深一步的认识。原创 2023-03-22 19:10:38 · 861 阅读 · 0 评论 -
Python 之常见运算符所带来的奇妙现象
取模运算符较为特殊,结果值的数据类型不一定为浮点型,这取决于取模运算符的操作数的数据类型。若操作数中含有浮点型,则结果值的数据类型为浮点型。若操作数均为整型,则结果值的数据类型为整型。在 Python 中,除法运算符无论遇到的操作数中是否包含浮点数,得到的结果都将为浮点数(除数不可为零,Python 将为此抛出错误)。字符串的乘法;浮点数的向上圆整、向下圆整及四舍五;取模运算的结果值的正负以及所属的数据类型。原创 2023-03-21 16:34:16 · 350 阅读 · 0 评论 -
初识 Python 科学计算库之 NumPy(创建多维数组对象)
NumPy 与 SciPy、Matplotlib、SciKits 等其他众多 Python 科学计算库很好的结合在一起,共同构建了一个完整的科学计算生态系统。NumPy(Numerical Python)是一个开源的 Python 第三方库,几乎用于每个科学和工程领域。原创 2023-02-03 14:08:09 · 1926 阅读 · 0 评论 -
初识 Django(Python WEB 框架)
Django 遵循 MTV(Model Template View) 架构,MTV 与 MVC 十分相似。Django 包含了 WEB 开发中所需要的大部分功能,并且 Django 还为开发者们提供了数十个可用于处理常见 Web 开发任务的额外功能。Django 不允许模板中出现 Python 代码,这降低了使用 Django 开发的灵活性。推荐安装 Django 的长期支持版,如需获取长期支持版的最新信息,请前往。原创 2023-01-18 22:34:51 · 1424 阅读 · 0 评论 -
sqli-labs 第八关 多命通关攻略(Python3 自动化实现布尔盲注)
在使用了这两种对布尔盲注的实现后,相信各位都感觉到了采用了二分查找算法的 Python 实现相比于普通的 Python 实现速度有很大的提升吧,这种执行速度上的差异会随着被判断字符串的长度而变得更为明显。在转换过程中,MySQL 将对字符串的每一个字符从左往右进行扫描,一旦遇到非数字的字符将停止继续扫描(如果字符串的第一个字符为非数字字符,则将该字符串转换为数值的结果为。),我们先对数据库的名称的长度位数进行判断,相信数据库名称的长度的位数是不可能超过。让我们构造语句来判断数据库名称的第一个字符是否为。原创 2023-01-09 22:03:11 · 836 阅读 · 0 评论 -
Python 实现凯撒加解密
1. 对于凯撒密码来说,多次加密的效果与一次加密的效果类似,并没有提高加密的效果。2. 在一个凯撒密码的密码体系中,往往存在一个特别的偏移量,使用这个偏移量对明文加密两次将得到明文。原创 2022-12-25 14:07:39 · 9038 阅读 · 2 评论 -
Python 列表
(仅为基本结构,切片表达式还有许多变体)的结构称为切片,切片可以将有序序列中的部分元素取出并重组为一个新的有序序列(其实并不是新的有序序列,可以理解为原有序序列的视图)。切片由中括号,开始索引,冒号,结束索引组成,切片将返回一个开始索引到结束索引间的所有元素组成的有序序列(元素包含开始索引对应的元素但不包含结束索引对应的元素)。列表的赋值操作是浅拷贝,赋值操作中的数方中的一方发生改变将在其他几方中反映出来。浅拷贝拷贝的是对象的指针(对象存放的内存地址),深拷贝拷贝的是对象本身。索引也可以是负数,像索引。原创 2022-11-20 08:05:52 · 401 阅读 · 0 评论 -
Python 容器 | 可迭代对象 | 迭代器 | 生成器 | range
介绍了 Python 中的容器,可迭代对象,生成器及range的特点,并讲解了使自建函数拥有类似特点的方法。原创 2022-11-19 14:55:48 · 626 阅读 · 0 评论 -
Python2中urllib2库及cookielib库实现登陆网页时cookie的存取
文章目录1 cookie的获取导入模块规定所需信息开启工具的配置及安装向服务器发起登陆请求保存cookie至指定文件夹2 使用cookie向服务器发起请求导入模块规定所需信息cookie的读取开启工具的配置及安装发起请求打印网页文本进行判断3 代码总汇cookie的获取使用cookie向服务器发起请求1. cookie的获取导入模块#! user/...原创 2022-10-24 20:58:20 · 1026 阅读 · 0 评论 -
Python3中urllib库的两种添加请求头的方式
【代码】Python3中urllib库的两种添加请求头的方式。原创 2022-10-22 18:42:34 · 7093 阅读 · 0 评论 -
Python通过socket实现在线聊天功能---初级版
Python通过socket实现在线聊天功能---初级版有客户端与服务器端的实现,在收发信息方面只能轮流进行。可以通过多线程实现收发同时,但未在本篇中实现。原创 2022-11-03 12:25:09 · 2045 阅读 · 0 评论 -
机器学习与特征提取(初级)---scikit-learn
数据集的获取及使用,特征工程,TF-IDF,scikit-learn,字典特征提取,文本特征提取原创 2022-10-20 12:09:19 · 593 阅读 · 0 评论