😆🤣🙌🐟🏖️
六小时之外
编程小白,不怕困难
文章趋势
Python学习-13进程与线程

Python学习-13进程与线程

并发编程是现代软件开发的基础能力,文章系统梳理了Python中进程与线程的核心概念与实践方法。关键要点包括:并发强调任务交替推进,并行强调同时执行;同步/异步描述任务等待关系而非CPU核心数。进程是资源分配基本单位,线程是CPU调度基本单位,进程间内存独立,线程共享进程资源。Python通过`multiprocessing.Process`和`threading.Thread`创建执行单元,需使用`Lock`/`RLock`保护临界区,`join()`等待子进程,`terminate()`强制终止。进程间通信依赖`Queue`和`Pipe`,变量默认不共享。进程池和线程池(`concurrent.futures`)可高效管理批量任务。CPython的GIL导致多线程在CPU密集型任务中无法真正并行,因此CPU密集型优先多进程,I/O密集型优先多线程。理解这些概念并根据任务类型、资源开销和稳定性需求选择合适模型,是并发编程的核心能力。

Python学习-12文件操作

Python学习-12文件操作

Python文件操作是编程基础,涉及文件本质(文本文件依赖编码,二进制文件依赖格式)、路径(绝对与相对)、open()函数及多种模式(r/w/x/a/b/t/+)。读取方式包括read()、readline()、readlines()和for循环遍历,推荐用with上下文管理器确保资源自动释放。写入时需注意覆盖(w)、追加(a)或排它创建(x)的区别;flush()可强制落盘。组合模式(r+/w+/a+等)配合seek()实现读写一体。目录操作通过os和shutil模块实现创建、删除、遍历。核心建议:文本文件指定UTF-8编码,大文件逐行或分块读取,二进制文件用b模式,操作前确认覆盖风险,优先使用with。掌握这些为数据处理、自动化等高级应用打下基础。

Python学习-11迭代器与生成器

Python学习-11迭代器与生成器

Python中的可迭代对象(如列表、字符串)定义了能被`for`循环遍历的能力,其核心是提供`__iter__`方法。迭代器是真正负责逐项取值的对象,通过`__next__`方法推进状态并在耗尽时抛出`StopIteration`异常,它支持惰性计算,按需生成结果,节省内存。生成器是基于`yield`关键字的特殊迭代器,由解释器自动管理状态保存与恢复,使代码更简洁自然。`for`循环本质是自动调用`iter()`和`next()`的语法糖。生成器表达式提供列表推导式的惰性版本。在实际开发中,优先使用生成器实现遍历,仅在需要精细状态控制时才手写迭代器类。理解这三者的关系有助于优化大规模数据处理与流式编程。

Python学习-10模块与包

Python学习-10模块与包

Python中的模块是`.py`文件,用于拆分功能、提高复用性和可维护性;包括标准库、自定义和第三方三类。包是包含`__init__.py`的目录,用于组织多个模块和子包,形成层级结构。模块导入方式包括`import`、`from ... import`及别名用法,其中`__all__`控制`import *`的导出内容,`__name__`用于判断模块是否作为主程序运行。包通过`__init__.py`实现初始化与接口暴露。第三方包通过PyPI发布,使用`pip`安装。Python环境分为全局环境与虚拟环境,虚拟环境能实现项目间依赖隔离,避免版本冲突,是真实开发中的推荐做法。掌握模块、包与环境管理,是构建可维护、可扩展Python项目的基础。

Python学习-09错误与异常

Python学习-09错误与异常

在Python中,程序中断由错误与异常两类原因造成。错误是语法层面的问题,发生在代码解析阶段,无法通过异常处理拯救,只能修正源码。异常是语法正确但运行时因数据或环境问题导致的非预期情况,可通过异常处理机制管理。常见异常类型有ZeroDivisionError、TypeError、IndexError等。完整的异常处理结构为try-except-else-finally,其中finally用于资源清理。raise语句可主动抛出业务异常。异常会沿函数调用链逐层传递,直到被捕获。自定义异常类继承自Exception,能更准确表达业务语义,提升可读性与可维护性。工程化建议包括:避免使用裸except,优先捕获具体异常,保留异常上下文,利用finally清理资源,并合理使用自定义异常,不滥用异常替代分支判断。

Python学习-08函数进阶

Python学习-08函数进阶

Python函数进阶的核心在于“函数是一等对象”,可赋值、传递、嵌套和动态修改。文章系统讲解了多返回值与参数解包、高阶函数与匿名函数(lambda)、数据处理工具(map/filter/sorted/reduce)、推导式、深浅拷贝、作用域与LEGB规则、闭包(携带状态的函数)、装饰器(无侵入功能增强,包括函数装饰器和类装饰器)以及类型注解(代码文档化)。这些特性使代码更灵活、可复用,并为装饰器、元编程等高级领域打下基础。文章强调理解可变/不可变对象传递差异、闭包中自由变量的捕获、装饰器实现原理及类型注解对大型项目的价值。

Python学习-07面向对象

Python学习-07面向对象

面向对象编程(OOP)将数据和行为封装在对象中,通过类定义共性,继承实现复用,多态让不同对象对同一消息作出不同响应。Python完全支持OOP,涵盖类与实例(__init__初始化)、实例属性与类属性、实例方法/类方法(@classmethod)/静态方法(@staticmethod)。继承支持单继承和多重继承,通过super()调用父类,可重写方法。权限控制采用命名约定(单下划线表示受保护,双下划线通过名称改写实现私有),结合@property实现受控访问。魔法方法(如__str__、__lt__、__eq__)让对象更自然。多态既可通过继承实现,也依赖鸭子类型(动态语言特性)。抽象类(ABC)强制子类实现接口。综合案例(学生成绩管理系统)展示了数据封装、继承、类属性、魔法方法等核心概念。在实际开发中,遇到相似实体、继承关系、多态操作或需要封装复杂状态时,应优先考虑OOP,以提升代码可读性、可维护性和可扩展性。

Python学习-06数据容器

Python学习-06数据容器

Python提供了五种内置数据容器:列表、元组、字符串、集合、字典。列表是有序且可变的序列,支持增删改查、排序和反转;元组是有序但不可变的序列,常用于固定数据,支持解包;字符串是字符的不可变序列,可进行查找、分割、替换等操作;集合是无序且元素唯一的可变容器,支持并、交、差等数学运算;字典以键值对形式存储,键唯一且不可变,用于高效映射查找。所有容器均支持成员运算符`in`和类型转换函数。序列(列表、元组、字符串)还支持切片和相加/重复操作。选型建议:需要频繁修改用列表,固定数据用元组,文本处理用字符串,去重或集合运算用集合,键值映射用字典。掌握这些容器可应对绝大多数数据管理场景。

Python学习-05函数入门

Python学习-05函数入门

函数是Python编程的核心概念,用于封装可重复使用的代码块,提升代码可读性与维护性。Python函数分为内置函数、模块函数和自定义函数(使用`def`定义)。函数通过参数(位置参数、关键字参数、默认值、可变参数`*args`和`**kwargs`)实现灵活性,并可通过`/`和`*`限制传参方式。返回值用`return`,无返回值则默认返回`None`。变量作用域包括全局(函数外部)和局部(函数内部),修改全局变量需用`global`。函数支持嵌套调用和递归(需有终止条件)。编写函数说明文档(三引号)可提升可维护性。综合案例展示了函数在数据计算与条件判断中的应用。掌握这些知识点后,可将重复代码重构为函数,推动Python编程进阶。

Python学习-04流程控制语句

Python学习-04流程控制语句

Python流程控制包括分支和循环结构。分支结构通过if/elif/else实现条件选择,依靠缩进区分代码块,支持单分支、双分支、多分支及嵌套分支,用于处理不同条件逻辑。循环结构有while和for两种:while循环在条件为真时重复执行,需注意更新条件变量避免死循环;for循环用于遍历range、字符串、列表等可迭代对象。嵌套循环中外层每执行一次,内层完整执行一轮,典型应用如九九乘法表。循环控制符continue用于跳过本次循环剩余语句,break用于提前终止当前层循环。综合案例答题闯关游戏融合了上述所有知识点,通过for遍历关卡、while控制尝试次数、if判断答案、continue处理空输入、break退出循环。掌握流程控制是编写复杂程序的基础,建议通过动手练习加深理解。