Python 生成器 了解 Python 生成器如何简化迭代、减少样板代码并改善内存使用,优于传统迭代器。 什么是生成器? 在 Python 中构建自定义迭代器通常需要实现 __iter__() 和 __next__() 的类,管理内部状态,并在结束时引发 StopIteration。生成器消除这些样板代码,让你编写简单函数逐个产出值。 简而言之,生成器是返回迭代器的函数。函数体惰性执行,每次 yield 暂停,后续调用恢复。 在 Python 中创建生成器 定义生成器像写普通函数,将 return 替换为 yield: def my_gen(): n = 1 print(T
Python 迭代器 了解 Python 迭代器如何工作,如何用 for 循环或 next() 遍历,以及如何用迭代器协议创建自定义或无限迭代器。 视频:Python 迭代器 Python 中的迭代器 迭代器在 Python 中无处不在。它们支撑 for 循环、列表推导式、生成器和许多内置数据结构,常在幕后工作。 迭代器就是逐个产出数据的对象。在 Python 中,实现 __iter__() 和 __next__() 方法的对象即为迭代器。 能提供迭代器的对象称为可迭代对象。大多数内置容器——列表、元组、字符串、字典——均可迭代。内置 iter() 函数调用对象的 __iter__() 方法获
Python 运算符重载 了解如何使用 __add__、__lt__ 等特殊方法重新定义 Python 运算符行为,增强 OOP 设计。 Python 运算符重载 Python 内置运算符根据操作数类型表现不同。例如 + 对数字相加、对字符串连接、对列表合并。这种灵活性通过运算符重载实现——让你为自定义类赋予上下文特定的运算符含义。 以简单 Point 类为例,表示二维平面坐标。无特殊方法时,尝试相加两点会引发 TypeError: class Point: def __init__(self, x=0, y=0): self.x = x self.y
Python 多重继承 探索 Python 如何支持多重继承、多层继承的细微差别,以及方法解析顺序 (MRO) 如何控制属性查找。 Python 多重继承 Python 允许类继承多个基类,正如 C++。此特性称多重继承,让派生类组合多个父类的行为。 语法同单继承:在括号中列出所有父类,逗号分隔。 示例 class Base1: pass class Base2: pass class MultiDerived(Base1, Base2): pass 此例中 MultiDerived 继承 Base1 和 Base2 的属性和方法。 图示:MultiDerived 从 Base1 和 Bas
Python 继承 继承让你创建新类继承父类所有功能并添加或扩展特性。本教程通过清晰示例和最佳实践指导解释 Python 继承用法。 视频:Python 继承 Python 中的继承 继承是面向对象编程的核心原则,促进代码复用和逻辑层级。新类(派生或子类)以最小或无更改定义在现有类(基或父类)之上。子类自动获得父类属性和方法,可按需覆盖或扩展。 Python 继承语法 class BaseClass: # 基类体 class DerivedClass(BaseClass): # 派生类体 上例中 DerivedClass 继承 BaseClass 所有公共成员。通过添加新方法
Python 对象与类 本教程探索 Python 核心面向对象特性,指导你完成类创建、实例化及编写健壮代码的最佳实践。 视频:Python 类与对象 Python 对象与类 Python 本质上是面向对象的。过程式编程关注函数,OOP 以对象为中心,将数据与行为捆绑。 对象是属性(数据)和方法(函数)的捆绑。类是定义对象结构的蓝图。 把类想象成房屋蓝图——详述房间、门、窗。每栋建成的房子是对象,即从蓝图创建的实例。 同一类可创建多个对象。实例化是从类创建对象的过程。 在 Python 中定义类 类定义以 class 关键字开始,类似函数以 def 开始。类中的第一个字符串是文档字符串,提供简
Python 面向对象编程 本指南通过实战示例讲解 Python 面向对象编程(OOP)核心概念,助你构建健壮、可复用代码。 视频:Python 面向对象编程 面向对象编程 Python 是支持多种编程风格的多范式语言。最强大的方法之一是用对象建模问题——即面向对象编程(OOP)。 对象具备两个基本特征: 属性(数据)行为(方法) 例如,鹦鹉 是一个对象,拥有 name、age、color 等属性,以及 sing()、dance() 等行为。 Python OOP 促进代码复用,遵循 DRY(Dont Repeat Yourself)原则。 类 class 是定义对象结构和行为的蓝图。可视为鹦
Python 自定义异常 本教程教你如何定义符合需求的自定义异常,并通过实战示例说明。 Python 提供许多内置异常,在程序遇到意外条件时发出错误信号。但有时内置异常无法精确描述你遇到的问题。这时可创建自己的自定义异常类型,使代码更清晰、易维护。 创建自定义异常 在 Python 中定义自定义异常很简单:创建一个继承自内置 Exception 类(或其子类)的新类。大多数标准异常派生自 Exception,所以你的自定义类能无缝集成 Python 错误处理体系。 > >>> class CustomError(Exception): ... pass ... >
精通 Python 异常处理:try、except、else 与 finally 详解 本指南通过实用代码片段和最佳实践技巧,带你了解 Python 的异常处理结构。 视频:Python 异常处理(try..except..finally) Python 中的异常 运行时错误发生时,Python 会引发内置异常。解释器停止当前代码块,并沿调用栈向上传播异常,直到找到处理器。若无处理器,程序终止并打印回溯。 考虑调用链:A 调用 B,B 调用 C。若 C 引发异常且未在本地处理,异常冒泡至 B 再至 A。未处理异常导致程序突然崩溃。 在 Python 中捕获异常 拦截异常,将可能不安全的代码放入
Python 错误与内置异常 了解 Python 如何发出问题信号、语法错误与运行时错误的区别,以及如何自信处理内置异常。 视频:Python 异常处理 运行 Python 程序时,若遇到未处理错误,解释器会立即停止执行。错误大致分两类: 语法错误——解析阶段检测到的问题。 逻辑错误(异常)——代码执行时出现的问题。 Python 语法错误 源代码违反 Python 语法规则时发生语法错误。错误消息中用插入符 (^) 指向确切位置。 > >>> if a < 3 File <interactive input>, line 1 if a <
Python 目录与文件管理 通过清晰的实战示例,学习如何在 Python 中高效创建、导航、列出、重命名和删除目录与文件。 视频:Python os 模块 Python 目录 项目增长时,将代码组织到结构良好的文件夹变得至关重要。目录——或文件夹——是文件和子目录的容器,Python 的 os 模块提供强大工具管理它们。 获取当前目录 用 os.getcwd() 获取当前工作目录字符串。若需字节表示,os.getcwdb() 可用。 import os os.getcwd() # C:\\Program Files\\PyScripter os.getcwdb() # bC:\\Pro
Python 文件 I/O 通过清晰示例与最佳实践,学习在 Python 中打开、读取、写入和关闭文件。 视频:Python 读写文件 文件 文件是磁盘上存储数据的命名位置。因 RAM 易失性,我们依赖文件在程序执行间保持信息。 与文件交互的典型顺序是:打开 → 读/写 → 关闭。 在 Python 中打开文件 Python 内置 open() 函数返回文件对象,用于执行 I/O 操作。函数签名: open(file, mode=r, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=No
Python 字典 本综合指南解释 Python 字典——如何创建、访问、增删元素,并利用内置方法。 视频:Python 字典存储键值对 Python 字典是键值对的无序集合。每个条目将唯一、不可变的键与任意类型的值关联。 创建 Python 字典 定义字典很简单:将逗号分隔的键值对放入花括号 {}。键必须不可变(字符串、数字或不可变元素的元组)且唯一;值可以是任意类型且可重复。 # 空字典 my_dict = {} # 整数键字典 my_dict = {1: apple, 2: ball} # 混合键字典 my_dict = {name: John, 1: [2, 4, 3]} # 使用
Python 集合 了解 Python 集合数据类型如何简化数据去重与集合运算。本指南涵盖创建、修改、删除及所有基本集合操作。 视频:Python 中的集合 集合是唯一、不可变项的无序集合。集合本身可变——允许添加或移除元素——但其元素必须可哈希(如数字、字符串、元组)。 Python 集合支持并集、交集、差集、对称差集等数学集合运算,使其成为数据去重、成员测试和集合代数的理想工具。 创建 Python 集合 用花括号或内置 set() 构造函数创建集合。元素可以是任何不可变类型,但列表、字典或其他集合等可变类型不能包含。 # 示例 1:不同数据类型的集合 # 整数集合 my_set = {
Python 字符串 本教程将教你在 Python 中创建、格式化、修改和删除字符串,并介绍各种字符串操作与函数。 视频:Python 字符串 Python 中的字符串是什么? 字符串是字符序列。 字符就是符号。例如英语有 26 个字符。 计算机不处理字符,而是处理数字(二进制)。即使屏幕上显示字符,内部也是以 0 和 1 的组合存储和操作。 字符到数字的转换叫编码,逆过程叫解码。ASCII 和 Unicode 是常用编码。 Python 中字符串是 Unicode 字符序列。Unicode 旨在涵盖所有语言字符,统一编码。可从 Python Unicode 了解更多。 如何在 Python
Python 元组 探索 Python 元组的威力——不可变序列为异构数据提供速度、安全性和通用性。本指南从基础语法到进阶操作,助你理解何时选择元组而非列表。 视频:Python 列表与元组 元组行为类似列表,但创建后不可变。与列表不同,你无法修改其元素,使元组成为固定数据集的理想选择。 创建元组 元组通过将逗号分隔的值放入圆括号 () 定义。括号虽可选,但能提升可读性。 元组可包含任意数量项并混合数据类型——整数、浮点数、字符串、列表、其他元组等。 # 不同类型的元组 # 空元组 my_tuple = () print(my_tuple) # 整数元组 my_tuple = (1, 2,
Python 列表操作 Python 列表是语言中最通用的数据结构之一,能高效存储、组织和操作值序列。本指南涵盖从创建、访问列表元素到切片、推导式及内置方法等进阶技巧。 视频:Python 列表与元组 Python 列表允许同时处理多个项目。例如: # 编程语言列表 [Python, C++, JavaScript] 创建 Python 列表 列表通过将元素放入方括号 [] 并用逗号分隔创建。列表可包含任意数量项,支持混合数据类型。 # 整数列表 my_list = [1, 2, 3] 示例: # 空列表 my_list = [] # 混合数据类型 my_list = [1, Hello,
精通 Python 数字、类型转换与数学运算 探索 Python 如何处理数值数据、类型转换的细节,以及可用于日常编程的强大数学工具。 Python 中的数字数据类型 Python 将数字分为三种核心类型:int(整数)、float(浮点数,带小数部分)和 complex(复数,含实部和虚部)。小数点的存在区分 int 与 float(如 5 是整数,5.0 是浮点数)。复数采用 x + yj 表示法,其中 x 为实部,y 为虚部。 使用 type() 查看值的类,用 isinstance() 验证类型成员身份。例如: a = 5 print(type(a)) print(type(5.0))
Python 包 学习如何使用 Python 包组织不断增长的代码库,以及如何高效导入自定义或第三方模块。 视频:Python 包——组织你的代码 什么是包? 正如我们将磁盘上的文件归类到文件夹以保持清晰,Python 使用包来组织相关模块。包本质上是一个包含 __init__.py 文件的目录——这会告诉 Python 将该文件夹视为一个命名空间。 随着项目扩大,将相似模块放在同一个包中能让项目保持可控且自文档化。包还可以包含子包,这与目录嵌套的方式一致。 例如,一个游戏项目的结构可能如下: 从包导入模块 模块通过点(.)表示法导入。要从 Game/Level 包导入 start.py,
Python模块 发现如何构建、导入和管理Python模块。学习最佳实践、高级导入技巧和模块搜索路径。 视频:Python模块 观看模块基础深度教程。 什么是Python模块? 模块 就是包含Python语句和定义的文件。例如 example.py 是名为 example 的模块。模块帮你将大程序拆解为可管理、可复用的片段。一次定义通用函数,到处导入使用。 创建小模块。存为 example.py: # example.py – 简单加法模块 def add(a, b): Return the sum of two numbers. return a + b 如何在Python
Python