# Python programming and object-oriented **Repository Path**: liufumore/python-programming-and-object-oriented ## Basic Information - **Project Name**: Python programming and object-oriented - **Description**: python编程和面向对象 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-29 - **Last Updated**: 2026-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python 编程和面向对象 > 一套面向零基础学员的系统化 Python 培训课程,涵盖从 Hello World 到面向对象编程、数据库操作、GUI 开发的完整学习路径。 --- ## 📁 项目结构概览 ``` ├── day01/ # Python 基础入门 ├── day02-pycharm安装/ # PyCharm 安装配置(CentOS) ├── day03/ # Python 分支结构 ├── day04/ # Python 循环结构 ├── day05/ # 变量进阶(上):列表、元组 ├── day06/ # 变量进阶(下):集合、字典、字符串 ├── day07/ # Python 函数 ├── day08/ # Python 面向对象基础 ├── day09/ # Python 面向对象进阶 ├── day10/ # Python 异常、模块、包 ├── day11/ # Python 文件操作 ├── day12/ # Python 数据库编程(PyMySQL) ├── day13-项目实训-投票系统/ # 综合项目实训:投票系统 ├── day14-python图书管理/ # 综合项目:图书管理系统(Tkinter GUI) └── 补充python基础中期项目建议/ # 中期项目建议:学生成绩管理系统 ``` ### 每日目录内部结构 大部分 day 目录包含以下子目录: | 子目录 | 说明 | |--------|------| | `ppt/` | 教学演示文稿(`.pptx`) | | `代码/` | PyCharm 项目 + 课堂练习代码(`.py`) | | `笔记/` | 知识点整理(`.md` / `.pdf` / `.xmind`) | | `作业/` | 课后作业(`.docx` / `.pdf`) | | `资料/` | 补充参考资料 | --- ## 📚 课程大纲 ### 第一阶段:Python 基础入门 #### Day01 — Python 基础 - 第一个 Python 程序(Hello World) - 算术运算符与优先级 - 变量定义与使用、变量重新赋值 - `input()` 输入函数与类型转换(`float()`、`int()`) - PyCharm IDE 基本操作 #### Day02 — PyCharm 安装(CentOS 环境) - `wget` 下载 PyCharm 专业版 - 解压与启动配置 - 创建新项目与运行 Python 文件 - 中文补丁安装、快捷方式创建 - 附完整图文笔记(Markdown + PDF) #### Day03 — 分支结构 - `if-elif-else` 条件分支 - 字符串比较作为判断条件 - `pass` 占位符语句 - 实际案例:节日判断场景 #### Day04 — 循环结构 - `for` 循环与 `range()` 函数(起点/终点/步长) - `for` 循环遍历字符串 - 双重循环嵌套(矩阵输出) - `while` 循环 - `break`(中断循环)与 `continue`(跳过当前迭代) --- ### 第二阶段:变量进阶 #### Day05 — 变量进阶(上):列表、元组 - **列表(List)**:`append()`、索引修改、`remove()`、`max()`、`in` 成员判断 - **列表推导式**:基本语法 + `if` 过滤条件 - **元组(Tuple)**:定义与列表的互操作 #### Day06 — 变量进阶(下):集合、字典、字符串 - **集合(Set)**:`set()`、`add()`、`min()`、遍历 - **字典(Dict)**:增删键值对、`pop()`、`items()` 遍历 - **字符串方法**:`isdigit()`、`split()` - **格式化输出**:`%d`、`%s`、`%.3f` --- ### 第三阶段:函数与面向对象 #### Day07 — Python 函数 - 函数定义与调用(`def`) - 参数:形参 vs 实参、缺省参数、值传递 vs 引用传递 - 返回值(`return`) - 函数嵌套调用(含综合案例:素数求解、用户管理系统) - 变量作用域:局部变量、全局变量、`global` 关键字 - 匿名函数(`lambda` 表达式) - 补充:`math` 模块(`sqrt`、`pow`、`ceil`、`sin` 等) #### Day08 — 面向对象基础 - 面向对象概念:类、对象、属性、方法 - 类的定义(`class`)与实例化 - 内置方法:`__init__`(构造)、`__del__`(析构)、`__str__`(字符串表示) - 参数化构造(含缺省参数) - 设计练习:Cat 类、Calc 计算器类 #### Day09 — 面向对象进阶 - **封装**:私有属性/方法(`__` 双下划线) - **继承**:单继承、传递性、`super()` 扩展父类方法 - **多态**:方法重写、`isinstance()` 类型判断 - 类属性、类方法(`@classmethod`)、静态方法(`@staticmethod`) - 综合案例:计算机硬件组装、员工/经理/CEO 多态 --- ### 第四阶段:工程化编程 #### Day10 — 异常、模块、包 - **异常处理**:`try-except-else-finally`、`raise` 抛出异常 - **模块**:`import`、`from...import`、`as` 别名、`__name__` 属性 - **包**:`__init__.py`、包的导入结构 - 综合案例:模块化封装 list 增删改查操作 #### Day11 — 文件操作 - 文件操作三步:`open()` → `read()`/`write()` → `close()` - 文件打开模式(`r` / `w` / `a`) - 编码指定(UTF-8 / GBK) - 逐行读取:`readline()`、`readlines()` - `with open(...) as f` 上下文管理器 - JSON 数据读写 #### Day12 — 数据库编程(PyMySQL) - PyMySQL 安装与连接配置 - 游标(Cursor)操作 - 数据表创建(`CREATE TABLE`) - 增删改查(CRUD)操作:`INSERT` / `SELECT` / `UPDATE` / `DELETE` - 事务处理(`commit` / `rollback`) - 参数化 SQL 防注入 - 补充内容:Selenium WebDriver 基础爬虫 --- ### 第五阶段:综合项目实训 #### Day13 — 项目实训:在线投票系统 **技术栈**:纯 Python(列表、字典、函数、循环、排序) **功能模块**(6 个教学演示案例): | 模块 | 功能 | |------|------| | 候选人管理 | 添加/删除候选人 | | 投票功能 | 按姓名或序号投票,支持撤销 | | 票数统计 | 字典统计各候选人得票 | | 结果排序 | 按票数排序展示 | | 数据分析 | 总票数、平均票数、排名、占比 | | 主程序 | 整合全部功能的交互式入口 | #### Day14 — 图书管理系统(Python + MySQL + Tkinter GUI) **技术栈**:Python + PyMySQL + Tkinter + SHA256 加密 **数据库设计**: - `users` — 用户表(用户名/密码/邮箱/角色) - `books` — 图书表(书名/作者/出版社/ISBN/分类/库存) - `borrows` — 借阅记录表(借阅日期/应还日期/归还日期) - `settings` — 系统配置表 **功能模块**: | 模块 | 文件 | 功能 | |------|------|------| | 登录 | `login.py` | 用户登录验证 | | 主界面 | `main.py` | 主菜单导航 | | 用户管理 | `user.py` | 注册/查询/表格展示 | | 图书管理 | `book.py` | 图书录入/查询/状态管理 | | 借阅管理 | `borrow.py` | 借书/还书/借阅记录 | | 数据库 | `database.py` | 数据库连接与操作封装 | | 工具 | `utils.py` | SHA256 密码加密 | **包含两个版本**: 1. 命令行版(纯 Python + MySQL) 2. GUI 升级版(Tkinter 可视化界面) --- #### 补充 — 中期项目建议:学生成绩管理系统 > 建议在 Day06 之后开展,综合运用变量、选择、循环、列表、字典等基础知识。 - **数据结构**:列表嵌套字典(`[{"id": 1, "name": "张三", "scores": {...}}, ...]`) - **功能**:学生增删、成绩录入/修改、查询统计、主菜单交互 - **难点**:嵌套结构操作、输入验证、异常处理 --- ## 🛠 技术栈总览 | 阶段 | 技术/工具 | |------|----------| | 基础语法 | Python 3.9、变量、运算符、输入输出 | | 流程控制 | `if-elif-else`、`for`/`while`、`break`/`continue` | | 数据结构 | list、tuple、set、dict、字符串 | | 函数编程 | `def`、`lambda`、作用域、参数模式 | | 面向对象 | class、封装、继承、多态、类方法、静态方法 | | 工程化 | 异常处理、模块、包、文件 I/O、JSON | | 数据库 | MySQL、PyMySQL、CRUD、事务 | | GUI | Tkinter | | 工具链 | PyCharm、pip、Git | | 其他 | Selenium、SHA256 加密 | --- ## 🚀 快速开始 1. **克隆仓库** ```bash git clone https://gitee.com/liufumore/python-programming-and-object-oriented.git ``` 2. **环境要求** - Python 3.9+ - PyCharm(推荐) - MySQL(Day12/Day14 需要) 3. **按天学习**:从 `day01/` 开始,每天包含 PPT + 代码 + 笔记 + 作业,建议按顺序学习。 --- ## 📊 课程统计 | 统计项 | 数量 | |--------|------| | 教学天数 | 14 天 | | PPT 课件 | 11 个 | | Python 代码文件 | 约 160+ 个 | | 笔记文档 | 28+ 篇(含 Markdown/PDF/思维导图) | | 课后作业 | 20+ 份 | | 综合项目 | 3 个(投票系统、图书管理系统、成绩管理系统) | --- ## 📝 学习路线图 ``` Day01-02 Day03-04 Day05-06 Day07 Day08-09 Python基础 → 流程控制 → 变量进阶 → 函数 → 面向对象 + PyCharm 分支+循环 数据结构 作用域 封装继承多态 Day10 Day11 Day12 Day13 Day14 异常+模块 → 文件操作 → 数据库编程 → 实训项目 → 综合项目 +包 JSON PyMySQL 投票系统 图书管理GUI ``` --- *本仓库为 Python 教学课程完整资料,适合自学入门或教学参考。*