- 博客(2544)
- 收藏
- 关注
原创 Python 内置函数:常用数学函数
Python 提供了一系列无需导入任何模块即可使用的内置数学函数,这些函数适用于整数、浮点数、复数等基础运算,涵盖了绝对值、最大最小值、取整、幂运算等常见数学需求,以及进制转换、类型转换等与数值处理密切相关的方法。当需要四舍五入的数字恰好处于两个整数中间(即 .5 结尾),Python 的 round() 函数会将其舍入到最接近的偶数,而不是总是向上(或向下)取整。计算 x 的 y 次幂,若指定 z,则返回 (x ** y) % z 的结果。将整数 x 转换为以 '0x' 开头的十六进制字符串。
2025-08-04 00:00:16
451
原创 Python 库手册:ast 抽象语法树模块
ast(Abstract Syntax Trees,抽象语法树)模块用于将 Python 源代码转换为语法树结构,从而支持对代码进行分析、转换和再生成。该模块广泛应用于编译器、代码检查工具、自动化代码修改、静态分析器(如 mypy、flake8)和安全沙箱环境中。每个 Python 语法元素(如函数定义、if 语句、for 循环)在 AST 中都有对应的类(如 FunctionDef, If, For)。安全地对字符串或表达式求值,仅支持字面量(如列表、字典、数值、字符串)。
2025-08-03 13:55:00
431
原创 Python 库手册:dis 反汇编字节码模块
Python 的 dis 模块是 disassembler 的缩写,用于将 Python 源代码或编译后的函数对象转换为人类可读的字节码指令。1、Python 每次运行 .py 文件时会自动编译为 .pyc 文件,保存在 __pycache__ 中,即是字节码文件。2、dis 不会直接修改字节码,但它可用于理解 Python 是如何一步步执行代码的。反汇编函数、代码对象、类、方法、字符串等,输出字节码指令。打印代码对象的完整结构信息,包括常量、变量、字节码等。(1)分析函数执行的底层逻辑(字节码级别)。
2025-08-03 07:00:00
207
原创 Python:函数参数的五种形式
在 Python 编程中,函数是组织代码、提高复用性的基本单元。理解函数参数的不同形式及其使用规则,有助于编写更灵活、清晰和健壮的代码。先定必传(位置),再定默认(Default),星号打包(*args),限定命名(*),双星兜底(**kwargs)。(Keyword-only Arguments),也称“命名关键字参数”,Python 3 特性,位置参数 → 默认参数 → *args → 命名关键字参数 → **kwargs。接收任意数量的关键字参数,形式上是一个字典。最常见的参数形式之一,
2025-08-03 00:00:15
98
原创 Python:占位语句
这时候,我们就需要一条语法上有效,但什么也不做的语句来“占个位置”。占位语句(placeholder statement)是指在语法上必须写语句的地方,为了让结构完整而临时填入的、不会执行任何实际逻辑的语句或表达式。为了解决这个问题,我们需要使用 “占位语句” 来暂时“撑住”代码结构,使其在语法上合法但在逻辑上什么都不做。)只是源代码中的解释文字,不会被解释器视为“语句”,所以不能作为代码块的唯一内容。(2)会进入字节码,占用空间,静态分析工具可能提示“未使用的表达式”。但都不推荐作为占位语句使用。
2025-08-02 13:55:00
363
原创 Python 库手册:builtins 核心内置模块
当我们在 Python 中直接调用如 print()、len()、int()、isinstance() 等函数时,其实都是从 builtins 模块中自动导入的。比如,abs()、print()、len()、range()、int()、str()、isinstance()、sum()、open()、input()、type() 等函数都来自于 builtins 模块。2、包含内置函数、内置类型(如 int、str)和异常(如 ValueError)。(1)查看或重写内置函数(如禁用 eval())。
2025-08-02 07:00:00
236
原创 Python:常用运算符
Python 提供了丰富而直观的运算符,用于执行数学计算、逻辑判断、对象比较和位运算等操作。是海象运算符(walrus operator),Python 3.8+ 引入,专用于在表达式内赋值,而普通赋值运算符只能单独作为语句使用。例如,在 2 + 3 * 4 中,乘法优先级高于加法,因此乘法先算,表达式等价于 2 + (3 * 4)。运算符(Operators)是编程的基本工具,是写出灵活表达式的关键。1、一元运算符(如 -x、not x)优先于二元运算符。优先级决定了谁先算,结合性决定从哪边开始算。
2025-08-02 00:01:17
744
原创 Python:布尔判断逻辑(True / False)
在 Python 中,所有对象都可以用于布尔上下文(如 if、while、bool() 等)。1、非零数字:如 1,-3.5,complex(1,1)3、数字零:0、0.0、0j(整数、浮点数、复数)3、非空容器:[1],{'a':1},(0,)在布尔上下文中,以下 8 类对象会被当作。空容器、零值、None 被视为假(4、空字符串:''(长度为 0)三、除了上述之外,其他值都视为。2、非空字符串:"hello"1、False(布尔假本身)一、布尔上下文有哪些?8、空集合:set()2、None(空值)
2025-08-01 09:16:48
273
原创 Python 库手册:turtle 简易图形绘图模块
通过该对象,可以直接使用 tkinter 的方法对绘图窗口进行更精细的控制,比如添加文本、绑定事件、操作图层等。启动 turtle 图形界面的主事件循环,让绘图窗口保持开启状态,等待用户操作或响应事件(如点击、拖拽、键盘输入等)。在画布上的移动来绘制各种几何图形。五角星的每个角是 36°,但由于 turtle 是顺时针旋转,所以我们转的是 180 - 36 = 144。中心点为 (0, 0),向右为 x 轴正方向,向上为 y 轴正方向。一个可移动的绘图实体,类似画笔,支持移动、旋转、控制颜色与粗细。
2025-08-01 07:00:00
697
原创 Python:字符串常用操作方法
在 Python 中,字符串(str)是最常用的数据类型之一,用于表示文本信息。Python 的字符串对象不仅支持索引、切片和拼接,还提供了丰富的方法来处理大小写、查找替换、分割合并、对齐填充、编码转换等操作。将字符串中的制表符 \t 展开为空格,默认每个 tab 占 8 个空格位,可通过参数设置宽度。编码方式,如 'utf-8'、'gbk'、'ascii' 等,默认为。返回一个大小写无关的字符串版本,主要用于文本比较时的统一处理,强于 lower()。从右侧开始查找 sub,返回最后一次出现的位置。
2025-08-01 00:00:20
518
原创 Python: * 和 ** 运算符
函数定义中若同时使用 *args 与 **kwargs,顺序必须是:*args 在前,**kwargs 在后。可在函数调用中将列表、元组等可迭代对象解包为位置参数,每个元素依次传入函数对应的参数位置。会将字典中的键值对解包为关键字参数。注意:这不是位置参数,而是以键值对的形式传入。单独使用时,表示之后的参数必须通过关键字方式传入,常用于接口更清晰、安全的设计。表示接收任意数量的位置参数,打包成元组。表示在解包过程中捕获不定数量的中间元素。最基本的用法,数值之间的乘法运算。表示把可迭代对象的元素解包出来。
2025-07-31 16:50:36
487
原创 Python 库手册:tkinter 图形用户界面 GUI 模块
tkinter 是 Python 标准库中用于创建图形用户界面(GUI)的模块,是 Tk GUI 工具包的官方绑定。还有其他对话框,如:showwarning()、showerror() 以及 askyesno() 等。relief:边框样式(RAISED, SUNKEN, GROOVE, 等)用于排列控件的位置,常用的有 pack()、grid()、place()。side:排列方向(TOP, BOTTOM, LEFT, RIGHT)(3)简单的图形界面工具(如图像查看器、数据录入窗体)。
2025-07-31 13:55:00
299
原创 Python 库手册:contextlib 上下文管理器辅助模块
contextlib 是 Python 标准库中的一个工具模块,主要用于简化上下文管理器(context manager)的创建与使用。它允许我们更方便地使用 with 语句来管理资源(如文件、锁、数据库连接等),并提供了一组实用装饰器和工具函数,帮助我们更灵活地处理资源的进入与释放逻辑。2、ExitStack 是处理“多个上下文 + 异常安全”的利器,常用于需要动态进入多个 with 的复杂场景。contextlib 用于简化 with 语句的上下文管理,自动处理资源的获取与释放。
2025-07-31 07:00:00
373
原创 Python:海象运算符 :=
是现代 Python 的“边算边存”神器,用好它能写出更简洁、更高效的代码。是 Python 3.8 引入的新语法,用于在表达式中直接赋值,也叫作 “赋值表达式”(Named Expression)。它的加入并不是为了让你炫技,而是让你在合适的地方,写出更紧凑、清晰的代码。它的形状像一只海象的脸(两个眼睛和一根獠牙),因此被亲切地称为“海象运算符”。这样写代码更简洁,特别是在循环、条件判断、推导式等语境中非常有用。(1)循环中需要赋值判断的场合(如输入、读取、匹配)。(3)为了用而用,反而让代码更晦涩。
2025-07-31 00:00:39
589
原创 Python 库手册:operator 函数式运算符模块
其主要用途在于提高函数式编程中的灵活性和可读性,尤其适合搭配 map()、sorted()、functools.reduce()、itertools 等高阶函数。提供 attrgetter()、itemgetter()、methodcaller() 等工具,用于从对象中获取属性、索引或调用方法,常用于排序、筛选等操作。operator 模块将 Python 中的常见运算符(如加法、乘法、比较等)封装成函数,如 operator.add(a, b) 等价于 a + b。使用 itemgetter 为排序键。
2025-07-30 20:00:00
752
原创 Python 库手册:itertools 迭代器函数模块
itertools 是 Python 标准库中的一个功能强大的模块,提供了高效的迭代器函数集合,主要用于处理循环、排列组合、无限迭代等操作。如 chain()、zip_longest()、product() 可将多个迭代器拼接、笛卡尔积或对齐组合。如 compress()、filterfalse()、dropwhile() 等函数可对序列进行条件过滤。如 count()、cycle()、repeat() 可生成无限序列,常用于模拟或测试。3、特别适合构建数据管道、组合生成算法、图论枚举、数学建模等应用。
2025-07-30 18:00:00
457
原创 Python 库手册:functools 高阶函数工具模块
它主要用于函数的包装、缓存、参数绑定、偏函数创建等操作,在提高函数灵活性、可重用性和执行效率方面具有重要作用。如 singledispatch() 支持基于参数类型的函数重载,partialmethod() 用于类方法的偏应用。2、wraps() 和 update_wrapper() 是编写高质量装饰器的核心工具。:可以用于 sorted()、min()、max() 的 key 函数。(1)使用装饰器简化函数行为(如缓存、排序、保持元信息)。partial() 允许预设部分参数,创建新的简化函数。
2025-07-30 13:55:00
813
原创 Python 库手册:inspect 对象运行时信息模块
它提供了一套强大的工具,可以在运行时检查模块、类、函数、方法、代码对象等的结构与属性。可获取函数的参数信息、默认值、注解等(如 signature() 和 getfullargspec())。3、某些情况下(如交互式解释器、编译文件),getsource() 和 getfile() 可能抛出异常。如 isfunction()、ismethod() 等用于判断对象的种类(函数、类、生成器等)。可提取对象的源代码、行号和所在文件(如 getsource()、getfile())。
2025-07-30 10:00:00
512
原创 Python 库手册:enum 枚举类型模块
enum 是 Python 3.4 引入的标准库,用于定义枚举类型(Enumeration),可为一组具名的常量赋予可读性、约束性与类型安全。相比直接使用字符串或数字常量,enum 提供更清晰的表达与更少的错误风险,适用于状态定义、命令集、配置参数等场景。IntEnum、StrEnum 等允许枚举成员同时具有数值或字符串行为,用于更强类型控制。5、枚举的 name 和 value 是两个最常用的属性,分别表示成员名称和实际值。(1)定义清晰的状态集合(如枚举状态码、角色权限等)。
2025-07-30 07:00:00
400
原创 Python 内置函数:range( )
在 Python 2 中有两个函数:range()(返回列表)和 xrange()(返回惰性对象)。range() 是一个用于生成整数序列的内置函数,通常用于循环控制、构造序列、索引遍历等场景。对于大范围数字(如 range(1_000_000)),range() 的内存占用极低,适合用于处理大型循环任务。range() 不支持浮点步长。尽管 range() 本身返回的是不可变对象,但可以使用 list() 显式转换为列表。range() 返回的是一个 range 对象(不可变序列类型)。
2025-07-30 00:01:29
403
原创 Python 库手册:abc 抽象基类模块
abc 模块是 Python 提供的抽象基类机制(Abstract Base Classes),用于构建具有统一接口约束的类结构,尤其适合大型项目中多态设计、接口规范与类型检查。通过 abc.ABC 和 @abstractmethod,开发者可以定义不能被直接实例化的基类,从而强制子类实现特定方法或属性。支持 @abstractproperty(已废弃,推荐使用 @property + @abstractmethod)和 @classmethod 形式的抽象定义。抽象类的元类,ABC 类默认指定了该元类。
2025-07-29 20:00:00
800
原创 Python 库手册:typing 类型注解模块
Python 的 typing 模块提供了类型提示(Type Hinting)的支持,允许开发者在代码中使用静态类型标注。它是可选的类型检查机制,目的是提高代码的可读性、可维护性,并借助静态分析工具(如 mypy、pyright)在运行前发现潜在错误。类型构造器可嵌套使用,如 List[Dict[str, Tuple[int, int]]]。类型提示不会影响程序运行,主要供编辑器、IDE 和类型检查工具(如 mypy)使用。4、类型提示不会影响程序运行,但可极大提升 IDE 智能补全与静态检查能力。
2025-07-29 13:55:00
797
原创 Python 库手册:venv 虚拟环境模块
venv 是 Python 内置的虚拟环境管理工具,提供了一种便捷方式,在同一系统中创建多个相互隔离的 Python 环境。每个环境都有独立的解释器和包安装路径,可避免不同项目之间的依赖冲突,是现代 Python 开发中的推荐做法。2、若需要更强大的环境复制、依赖导出、跨平台封装等功能,可考虑使用 virtualenv 或 poetry、[conda] 等第三方工具。当你使用 venv 创建虚拟环境时,实际上是通过 EnvBuilder 类来管理和配置虚拟环境的创建过程。
2025-07-29 10:00:00
680
原创 Python 库手册:site 环境启动配置模块
Python 的 site 模块是启动 Python 解释器时自动导入的模块,它主要用于配置和管理 Python 运行环境中的站点目录(site-packages),包括第三方库的路径、启动钩子、自定义模块路径等。第三方模块的默认安装目录,通常是 Python 安装目录下的 Lib/site-packages(Windows)或 lib/pythonX.Y/site-packages(Unix)。用户级安装路径,支持使用 --user 安装第三方包(如 pip 的 --user 选项)。
2025-07-29 07:00:00
766
原创 小朋友学 Python(4):Python 也会出错?别怕,有异常处理!
如果出现 ZeroDivisionError,就会跳到 except 执行对应的处理语句。因为我们不小心让它除以了 0,这是数学中不允许的事,Python 就会发出警告。上节课我们用 Python 做了各种数学计算,是不是很像一个超级计算器?不过,你有没有遇到过这种情况:不小心除以了 0,程序突然报错、停下来?(Exception),也是 Python 的“求救信号”。后面没有指定任何错误类型时,意味着它会捕获所有类型的异常。如果一切顺利,try 中的代码就会执行。
2025-07-29 00:00:13
210
原创 Python 库手册:importlib 导入模块
importlib 是 Python 的标准库模块,用于实现模块的导入机制。它提供了一系列函数和工具,让你能够以编程方式导入模块,并执行更动态的模块管理操作(如重新加载、动态导入、检查模块规范等)。清除路径查找器的内部缓存(如导入 zip 文件或新建模块后)。3、动态导入可能带来安全隐患,需谨慎使用(如限制模块来源)。(1)动态导入模块或对象(如通过字符串模块名)。模块规范(ModuleSpec):模块的导入规范。重新加载已导入模块(代码变更时更新模块对象)。查找模块的加载规范(ModuleSpec)。
2025-07-28 20:00:00
327
原创 Python 库手册:getopt Unix 风格参数解析模块
它支持 Unix 风格的短选项(如 -h)和 GNU 风格的长选项(如 --help),但功能不如 argparse 丰富,适合编写简单脚本时快速处理命令行参数。longopts:可选,长选项列表,如 ["alpha", "beta="](带 = 表示需要值)3、被解析的参数通常来自 sys.argv[1:],即命令行中除脚本名外的参数。1、getopt 是轻量级命令行解析模块,适合参数结构简单、选项较少的脚本。:返回两个列表:已解析的选项元组列表、剩余参数列表。第二个列表是解析后剩余的非选项参数。
2025-07-28 17:00:00
334
原创 Python 第三方库:Black(代码格式化)
Black 是 Python 官方推荐的自动代码格式化工具之一,以其“坚定不移(opinionated)”的风格著称。它能将你的代码格式统一为一种规范,减少团队间的风格分歧,提升代码可读性,并节省格式争论时间。在 VS Code 中,打开“文件/首选项/设置”,点击右上角的“打开设置(json)”,将以下内容添加到设置 settings.json 文件中。1、Black 会自动调整代码缩进、括号、换行,使其符合 PEP8 与其自身风格规范。2、采用“不可配置格式”(除了少数参数),强制统一风格。
2025-07-28 16:25:14
360
原创 Python 库手册:argparse 命令行参数解析模块
3、argparse 是构建命令行工具的首选工具,具备强大的参数定义、类型检查、帮助信息自动生成等能力。它能自动生成 --help 帮助信息,对用户输入进行类型检查,甚至支持子命令。使用 parser.parse_args() 后,自动生成 -h / --help 的帮助文本。可选参数:以 - 或 -- 开头,如:--output result.txt。name:参数名,位置参数直接写名字,可选参数以 -- 开头。布尔参数:可用于启用/禁用某些选项,如:--verbose。
2025-07-28 13:55:00
808
原创 Python 库手册:platform 系统信息模块
platform 是 Python 的标准库模块之一,专用于访问和识别当前操作系统、Python 解释器以及底层平台的相关信息。此外,platform 还封装了一些“完整描述字符串”的函数,例如 platform()、uname(),方便快速输出系统摘要。:元组(位数, 链接方式),如 ('64bit', 'WindowsPE')例如:('10.15.7', ('', '', ''), 'x86_64'):元组(lib 名称,版本号),如 ('glibc', '2.31')
2025-07-28 10:00:00
558
原创 Python 库手册:sys 解释器交互模块
sys 模块是 Python 内置的标准库之一,用于访问与 Python 解释器紧密相关的变量与函数,包括系统参数、标准输入输出、模块路径、异常信息、解释器控制等。3、不建议随意修改 sys.path,推荐使用虚拟环境和模块管理工具(如 pip)。:str,如 'win32'、'linux'、'darwin'(macOS)2、可以读取、修改标准流,如 sys.stdin、sys.stdout。3、提供对运行参数(如命令行参数、版本、平台)和解释器配置的访问。:None(实际不会返回,程序会终止)
2025-07-28 09:16:32
835
原创 Python 之禅:写出更优雅代码的 19 条哲学格言
除了语法简洁、库强大之外,它还有一套独特的“美学标准”——《Python 之禅》(The Zen of Python)。它们浓缩了 Python 的核心理念,影响着这门语言的表达方式、风格甚至开发者的思维方式。这就是《Python 之禅》,由 Python 核心开发者 Tim Peters 于 2004 年所写,被视为 Python 社区的价值观指引。《Python 之禅》并不是强制规范,而是指引方向的哲学。不要仓促决策,尤其是设计方面,宁可不做,也不要胡来。Python 是写给人看的,兼顾计算机执行。
2025-07-28 00:00:44
848
原创 Python 库手册:timeit 代码计时模块
timeit 模块使用 time.perf_counter() 进行高精度计时,并多次重复执行被测代码,以减小偶然波动的影响。repeat:重复整个计时的次数(如 repeat=5 表示计时 5 次,返回 5 个结果)。2、若需要测试更复杂的代码逻辑,建议将测试代码写入函数中,并传入 timeit()。setup:准备代码,如导入模块或初始化变量(默认 pass)。(4)评估数据结构操作的耗时(如 list vs. set)。多次执行计时过程,返回多个耗时值(单位:秒)。
2025-07-27 22:00:00
293
原创 Python 库手册:doctest 文档测试模块
doctest 是 Python 内置的测试模块,它能提取文档字符串(docstring)中的交互式示例,并自动运行这些示例以验证它们是否按预期工作。换言之,它将 Python 文档中的示例代码当作测试用例来运行,确保文档与实现保持一致。1、多数 doctest 示例写在函数 docstring 中,也可以写在模块、类、方法的 docstring 中。上例中的 >>> 表示输入,下一行是期望的输出。3、doctest 的核心思想是:将测试代码写进函数的 docstring 中,而不影响函数本身逻辑。
2025-07-27 19:00:00
371
原创 Python 库手册:unittest 单元测试框架模块
unittest 是 Python 官方提供的内置单元测试框架,基于 Java 的 JUnit 风格设计,支持测试用例的自动化组织、执行、结果汇报和测试夹具(fixture)管理。运行该脚本后,unittest 自动执行所有以 test_ 开头的方法。setUp() 初始化测试数据,tearDown() 用于清理。作为测试程序的入口,自动发现并运行当前模块中的所有测试用例。断言用于验证实际结果是否符合预期。该命令可用于运行指定模块、类或方法,适合调试阶段。测试类的基类,测试方法需定义为 test_*()。
2025-07-27 13:55:00
284
原创 Python 库手册:pdb 交互式调试模块
它允许开发者在程序运行中设置断点、逐行执行代码、查看变量值、追踪调用栈,以便快速定位错误或理解代码执行流程。通过 pdb.set_trace() 手动设置断点,程序运行到此处暂停,进入交互式调试。在程序出现未捕获异常后,调用 pdb.post_mortem() 可直接进入异常现场。4、在类或模块中调试时,使用 p self、dir(self) 可快速了解对象状态。运行程序后将在命令行进入调试状态,可输入 n(下一步)、p a(打印 a)等命令。(1)程序运行出现错误但信息不足,需进入断点调试。
2025-07-27 10:00:00
260
原创 Python 库手册:warnings 警告信息模块
通过它,开发者可以提示用户潜在问题、不推荐使用的接口(deprecated)、未来将移除的特性等,同时保留程序的正常执行流程。3、若需将警告写入日志文件,可重写 warnings.showwarning() 或结合 logging.captureWarnings(True) 使用。action:"ignore"、"default"、"always"、"error" 等。action:控制行为(如 "ignore", "always", "error")(3)替代调试语句(如 print)发出开发提示。
2025-07-27 07:00:00
603
原创 小朋友学 Python(3):Python 是计算高手!
上节课我们学会了“变量”这个神奇魔法盒子,还学会了从用户那里获取数据、把输入的文字变成数字。这里用了 int(input(...)),把用户的输入变成了整数。试着在纸上算一下这些表达式,然后让 Python 来帮你验证结果!可以在 print() 的输出字符串中添加前缀,比如。2、输出它们的和、差、积、商、整除结果、余数、次方。一、Python 能做哪些数学运算?二、这些运算谁先算?Python 还提供了许多像这样的。四、练一练:猜猜结果是多少?五、实用小技巧:让结果更美观。1、让用户输入两个数字。
2025-07-27 00:01:09
375
原创 Python 库手册:traceback 错误追踪与调试模块
Python 的 traceback 模块是专为错误追踪与调试设计的标准库,它可以将异常信息(包括堆栈调用路径)以多种形式提取、格式化和输出。相比直接使用 print(e) 或 logging.error(e),traceback 提供了更清晰的上下文信息,有助于排查错误源头。当 Python 代码执行出错时,解释器会产生一个“异常对象”和“异常栈(traceback)对象”,其中 traceback 保存了从错误发生点逐级向上的调用轨迹。(4)在不抛出异常的前提下,分析异常细节(如 Web 应用日志)。
2025-07-26 19:00:00
541
原创 Python 库手册:logging 日记记录模块
Python 的 logging 模块是官方推荐的日志记录工具,适用于小型脚本和大型系统。它提供了灵活统一的日志处理机制,可将日志信息输出到终端、文件、网络服务等多种媒介,支持日志等级分类、格式化输出、日志轮换和多模块共享。Logger:记录器,用于产生日志。(1)程序运行时的信息跟踪(debug、info、error 等)。Handler:处理器,控制日志输出位置(终端、文件、邮件等)。(4)日志文件的自动轮换(配合 handlers)。Formatter:格式器,定义日志内容的输出格式。
2025-07-26 13:55:00
730
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人