2576998022/Python_study
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
# Python学习笔记 ## 一、学习计划(适合零基础初学者) ### 1. 学习目标 通过系统化的学习,使零基础学员掌握Python基础知识,为后续进行接口自动化测试打下坚实基础。 ### 2. 学习阶段规划 #### 第一阶段:Python基础入门(2-3周) 1. Python环境搭建 - Python安装 - IDE选择(VS Code) - 第一个Python程序:Hello World 2. Python基础语法 - 变量和数据类型(整数、浮点数、字符串、布尔值) - 注释的使用 - print() 函数使用 - 基本运算符(+、-、*、/、%) 3. 程序控制流 - if条件判断 - for循环 - while循环 - break和continue语句 #### 第二阶段:数据结构基础(2-3周) 1. 基本数据结构 - 列表(List)的使用 - 元组(Tuple)的使用 - 字典(Dict)的使用 - 集合(Set)的使用 2. 字符串操作 - 字符串的基本操作 - 字符串格式化 - 常用字符串方法 #### 第三阶段:函数和模块(2周) 1. 函数基础 - 函数的定义和调用 - 参数传递 - 返回值 - 变量作用域 2. 模块使用 - 导入模块 - 常用内置模块 - 第三方模块的安装和使用 #### 第四阶段:文件操作和异常处理(2周) 1. 文件操作 - 文件的读写 - 文件路径处理 - CSV文件处理 2. 异常处理 - try-except语句 - 常见异常类型 - 异常处理最佳实践 ### 3. 学习资源 1. 在线教程: - 菜鸟教程 Python 基础:https://www.runoob.com/python3/python3-tutorial.html - 廖雪峰 Python 教程:https://www.liaoxuefeng.com/wiki/1016959663602400 2. 练习平台: - LeetCode:https://leetcode.cn/ - 实验楼:https://www.lanqiao.cn/ ## 二、开发环境配置 ### 1. VS Code配置 1. 必装插件: - Code Runner:代码快速运行 - Python:Python语言支持 - Pylance:Python语言服务器 - Python Extension Pack:Python扩展包 2. Code Runner设置: - 运行在集成终端 - 自动保存文件 - 运行前清除之前的输出 - 支持中文输出 3. 快捷键: - 运行代码:Ctrl+Alt+N - 停止运行:Ctrl+Alt+M ### 2. 终端配置 - 默认终端:Windows命令提示符(CMD) - 配置方式: 1. 界面配置:命令面板 -> "Terminal: Select Default Profile" -> "Command Prompt" 2. settings.json配置:设置默认终端为CMD ## 三、学习进度记录 ### 2024年11月16日(第二次更新) #### 新学习内容: 1. 函数基础 - 函数的定义和调用 - 函数参数(基本参数、默认参数、可变参数、关键字参数) - 函数返回值 - 函数文档字符串(docstring) #### 重点知识: 1. 函数定义 - def 关键字定义函数 - 参数列表 - 函数体 - return 语句 2. 参数类型 - 基本参数:必须传入的参数 - 默认参数:有默认值的参数 - 可变参数:*args,接收任意数量的位置参数 - 关键字参数:**kwargs,接收任意数量的关键字参数 3. 返回值 - 单一返回值 - 多个返回值(使用元组) - 无返回值(返回None) 4. 函数文档 - 使用三引号编写文档 - 说明函数用途 - 描述参数和返回值 5. 可变参数(*args) - 使用 * 接收任意数量的位置参数 - 在函数内部表现为元组 - 常用于参数数量不确定的场景 - 必须放在普通参数后面 - 一个函数只能有一个*args参数 - 可以通过 * 运算符解包序列 #### 实践要点: 1. 函数命名要清晰表达功能 2. 适当使用默认参数简 #### 已完成内容: 1. 数据结构基础学习 - 列表(List)的基本操作和方法 - 元组(Tuple)的特点和使用 - 字典(Dict)的创建和操作 - 集合(Set)的特性和应用 #### 重点知识: 1. 列表操作 - 创建和访问列表 - 常用方法:append(), insert(), pop(), remove() - 列表切片和索引 2. 元组特点 - 不可变性 - 创建和访问 - 多变量赋值 3. 字典使用 - 键值对概念 - 创建和访问字典 - get()方法的安全访问 - 统计和计数应用 4. 集合操作 - 元素唯一性 - 集合运算(并集、交集、差集) - 常用方法:add(), remove() #### 实践项目: - 学生选课统计系统 - 使用字典存储学生选课信息 - 使用集合处理课程去重 - 实现课程人数统计功能 #### 下一步计划: 准备学习第三阶段:函数和模块的内容 #### 注意事项: 1. 字典的get()方法很实用,特别是在统计场景 2. 集合适合处理需要去重的数据 3. 选择合适的数据结构对程序效率很重要 # Python参数使用说明 ## 参数类型 1. 位置参数:按照位置顺序传递的参数 2. 关键字参数:使用参数名=值方式传递的参数 3. 可变位置参数(*args):接收任意数量的位置参数 4. 可变关键字参数(**kwargs):接收任意数量的关键字参数 ## 使用则 1. 位置参数必须在关键字参数之前 2. 同一个参数不能既用位置又用关键字方式传递 3. 必选参数应该放在可选参数之前 ## 最佳实践 1. 参数数量固定且较少时,使用位置参数 2. 参数较多或需要提高代码可读性时,使用关键字参数 3. 处理不确定数量的参数时,使用*args和**kwargs 4. 测试函数编写时,优先考虑代码的可读性和可维护性 ## 示例代码 请参考上述示例代码来理解不同参数的使用方式 可变参数 args 和 kwargs - *args:接收任意数量的位置参数,转换为元组 - **kwargs:接收任意数量的关键字参数,转换为字典 # 示例4:可变参数 def flexible_function(*args, **kwargs): print("位置参数:", args) # 输出为元组 print("关键字参数:", kwargs) # 输出为字典 # 调用方式 flexible_function(1, 2, 3, name="小明", age=18) # 输出: # 位置参数: (1, 2, 3) # 关键字参数: {'name': '小明', 'age': 18} ### 2024年11月16日(第三次更新) #### 新学习内容: 1. Python模块基础 - 模块的概念和用途 - 模块的导入方式 - 自定义模块创建 - 模块的测试和使用 #### 重点知识: 1. 模块导入方式 - import module - from module import function - import module as alias - from module import *(不推荐) 2. 模块创建 - 模块就是.py文件 - 模块内可以包含函数、变量、类 - __name__ == "__main__" 的使用 3. 模块使用 - 使用点号访问模块内容 - 使用别名简化代码 - 导入特定函数避免命名冲突 #### 实践要点: 1. 合理组织模块结构 2. 注意模块的命名规范 3. 避免循环导入 4. 使用恰当的导入方式 #### 下一步计划: 学习Python标准库的常用模块 ## 2024年11月17日(第四次更新) 1. [完成] Python基础语法 2. [完成] 控制流程 3. [完成] 数据结构 4. [完成] 函数 5. [进行中] 模块和包 - 模块的概念和使用 - 包的创建和管理 - __init__.py的作用: * 将目录标记为Python包 * 包的初始化 * 导入管理(import *) * 定义版本信息 * 包级别文档 - 模块导入方式: * import module * from module import name * from module import * * import module as alias - 相对导入和绝对导入 - 模块搜索路径 6. [待学习] 面向对象编程 ## 最佳实践 1. 模块名使用小写字母,可使用下划线 2. 包应该有清晰的层级结构 3. __init__.py 保持简洁 4. 合理使用相对导入 5. 避免循环导入 6. 提供清晰的文档字符串 ## 下一步计划 - 学习面向对象编程基础 - 理解类和对象的概念 - 掌握继承和多态 ## 2024年11月17日(第五次更新) 1. [完成] Python基础语法 2. [完成] 控制流程 3. [完成] 数据结构 4. [完成] 函数 5. [完成] 模块和包 6. [进行中] 面向对象编程 - 类和对象的基本概念 - 类的定义和实例化 - 属性和方法 * 类属性 vs 实例属性 * 实例方法 * 属性装饰器(@property) - 私有属性的使用场景: * 数据验证(如账户余额) * 状态管理(如游戏状态) * 计算属性(如矩形面积) * 依赖关系(如成绩平均分) * 缓存场景(如数据处理) ## 面向对象编程最佳实践 1. 命名规范 - 类名使用大驼峰命名法(如 Student) - 属性和方法使用小写字母和下划线 - 私有属性和方法使用单下划线开头 2. 属性访问控制 - 使用 @property 装饰器控制属性访问 - 在 setter 中进行数据验证 - 合理使用私有属性保护数据 3. 代码组织 - 相关的属性和方法组织在一起 - 符合单一职责原则 - 保持类的简单性 4. 文档和注释 - 为类添加文档字符串 - 为重要的方法添加注释 - 使用类型注解提高可读性 ## 下一步计划 - 学习类的继承和多态 - 了解特殊方法(魔术方法) - 掌握面向对象的设计原则 ### 特殊方法使用指南 1. 基本特殊方法 - 总是定义 __init__ - 实现 __str__ 提供用户友好的字符串表示 - 实现 __repr__ 提供详细的调试信息 2. 比较操作 - __eq__ 用于相等性比较 - __lt__ 用于排序 - 其他比较方法(__gt__, __le__, __ge__)会自动推导 3. 容器操作 - __len__ 返回对象的长度 - __getitem__ 支持索引或键访问 - __setitem__ 支持索引或键赋值 - __delitem__ 支持删除操作 4. 类型转换 - __int__ 转换为整数 - __float__ 转换为浮点数 - __bool__ 转换为布尔值 ### 类型注解使用 1. 基本语法 - 参数注解:param: type - 返回值注解:-> type - 可选类型:Optional[type] 2. 常用类型 - str: 字符串 - int: 整数 - float: 浮点数 - bool: 布尔值 - List[type]: 列表 - Dict[key_type, value_type]: 字典 - Optional[type]: 可选类型 3. 注解好处 - 提高代码可读性 - 增强IDE支持 - 帮助捕获类型错误 - 作为代码文档 ## 下一步计划 - 学习面向对象的高级特性 - 了解元类和装饰器 - 掌握上下文管理器 ## 注意事项 1. 特殊方法应该在确实需要时才实现 2. 保持特殊方法的行为符合Python惯例 3. 类型注解是可选的,不要过度使用 4. 在需要清晰表达意图时使用类型注解