📋 知识地图
说明:✅ = 已有覆盖(可继续深化) ⬜ = 待扩充
一、Python 语言概述
- ✅ Python 特点(极简、开源、解释型、胶水语言)
- ✅ 编译型 vs 解释型语言对比
- ✅ Python 主要应用领域(Web / 爬虫 / AI / 自动化运维)
- ⬜ Python 2 vs 3 的历史与现状
- ⬜ CPython / PyPy / Jython / MicroPython 的区别
二、开发环境
- ⬜ Python 安装与版本管理(pyenv / conda)
- ⬜ 虚拟环境(venv / virtualenv / conda env)
- ⬜ pip 包管理(install / freeze / requirements.txt)
- ⬜ IDE 选择(VS Code / PyCharm / Jupyter)
三、数据类型体系
- ✅ 动态类型(赋什么值自动匹配)
- ✅ 数字类型(int / float / 运算)
- ⬜ 字符串操作(切片 / 格式化 / f-string / 常用方法)
- ✅ 列表(list)创建、访问、增删
- ✅ 元组(tuple)不可变特性
- ✅ 字典(dict)键值映射
- ✅ 集合(set)唯一性
- ✅ range 区间对象
- ⬜ 推导式(列表推导 / 字典推导 / 集合推导 / 生成器表达式)
- ⬜ 可变 vs 不可变对象(mutable vs immutable)
- ⬜ 深拷贝 vs 浅拷贝(copy / deepcopy)
四、运算与表达式
- ✅ 算术 / 比较 / 逻辑(and or not)
- ✅ 三目运算(a if cond else b)
- ✅ 幂次方(**)
- ⬜ 成员运算(in / not in)
- ⬜ 身份运算(is / is not)
- ⬜ 位运算
五、流程控制
- ✅ if / elif / else
- ✅ for 循环(for i in range / for item in 容器)
- ✅ while 循环
- ⬜ break / continue / else 子句在循环中的应用
- ⬜ pass 占位语句
六、函数
- ✅ 函数定义与调用(def)
- ✅ 返回值机制
- ✅ 内部函数(嵌套函数)
- ✅ 闭包(closure)基础
- ⬜ 参数类型:位置参数 / 默认参数 / 关键字参数 / 可变参数(args /*kwargs)
- ⬜ lambda 匿名函数
- ⬜ 装饰器(decorator)原理与应用
- ⬜ 生成器(generator)与 yield
- ⬜ 文档字符串(docstring)规范
七、类与面向对象
- ✅ 类定义与实例化
- ✅ 封装(property / getter-setter / 私有属性和方法)
- ✅ 继承(单继承 / 多继承 / MRO 顺序)
- ⬜ 构造方法(init)与 new
- ⬜ 魔术方法(str / repr / len / eq 等)
- ⬜ 类方法(@classmethod)与静态方法(@staticmethod)
- ⬜ 抽象基类(ABC)
- ⬜ dataclass(Python 3.7+)
八、模块与包
- ⬜ import 机制与模块搜索路径
- ⬜ 包的结构(init.py / all)
- ⬜ if name == “main“ 的用途
- ⬜ pip 深入(install / uninstall / list / 源的配置)
九、异常处理
- ⬜ try / except / else / finally
- ⬜ 常见内置异常(ValueError / KeyError / TypeError / IOError)
- ⬜ raise 抛出异常
- ⬜ 自定义异常类
- ⬜ 上下文管理器(with 语句 / enter / exit)
十、文件 I/O
- ⬜ 文件打开模式(r / w / a / b / + / encoding)
- ⬜ 读取(read / readline / readlines)
- ⬜ 写入(write / writelines)
- ⬜ with open 自动关闭
- ⬜ 路径操作(os.path / pathlib)
十一、并发编程
- ⬜ 多线程(threading)与 GIL 限制
- ⬜ 多进程(multiprocessing)
- ⬜ 异步编程(asyncio / async / await)
- ⬜ 线程池与进程池(concurrent.futures)
十二、标准库精选
- ⬜ os / sys:系统交互
- ⬜ datetime / time:时间处理
- ⬜ json / csv:数据序列化
- ⬜ re:正则表达式
- ⬜ collections:高级容器(Counter / defaultdict / OrderedDict)
- ⬜ itertools / functools:函数式编程工具
- ⬜ requests(第三方):HTTP 请求
十三、Python 项目管理
- ⬜ 项目结构规范(src-layout vs flat-layout)
- ⬜ setup.py / pyproject.toml
- ⬜ 发布到 PyPI
- ⬜ 代码格式化(black / ruff / isort)
- ⬜ 类型提示(type hints + mypy)
十四、测试
- ⬜ unittest / pytest 框架对比
- ⬜ 单元测试编写
- ⬜ mock / patch 模拟对象
- ⬜ 覆盖率工具(coverage)
十五、实战方向概览
- ⬜ Web 开发(Flask / Django 入门路径)
- ⬜ 网络爬虫(requests + BeautifulSoup / Scrapy)
- ⬜ 数据分析(NumPy / Pandas)
- ⬜ 自动化脚本与系统管理
python语言基础知识
python语言基础知识
python是一种极简、开源,面向对象,有着丰富类库(模块)的语言。
使用编译器将自身等效转换成机器语言的高级语言,通常称为编译型语言;而使用解释器将自身转换成机器语言的高级语言,称为解释型语言,Python 就是解释型编程语言的一种。c语言、c++、汇编等需要一次性把所以源代码转换为机器码交给计算机使用,这就是编译型语言,需要编译器;而python、js、php、shell等可以一边执行一边转换,不生成可执行程序,为解释型语言,由解释器不断解释。
编译型产生的程序具有“一次编译,无限次使用”特点,但其源码和执行程序却无法跨平台,需要按不同平台另行修改源码。
解释型则需要每次执行的时候转换源码,所以效率低,常应用于应用层面(网站开发、批处理、小工具)。因为解释型语言需要依靠源代码和解释器,所以就特别需要开发环境,也正是因为解释型语言需要依靠源码执行,所以都是开源的,而且具备跨平台的能力。
python由ABC语言发展而来,其可通过库,调用其他语言制作的模块(大部分为c和c++的),由此被称为“胶水”语言。其主要用于web开发、自动化运维、人工智能、网络爬虫、科学计算等方向,另外由于python可调用c++编写的图形模块,也可用于开发游戏。
hello world
print("hello world") //显然,作为解释型语言,其解释器包含了大量的各种方法的库文件,也就不用调入头文件等内容。之用用print函数输出
数据类型及运算符号
?。赋什么值,自动匹配该类型。支持如c语言那样,在print中使用格式化输出(%d、%i之类)以及转义字符。运算上还多了个**代表幂次方计算。如2**4,表示2的四次方。
需要注意逻辑运算符不同,而是and、or、not……
max = a if a>b else b 三目运算。与c语言对比表达式1 ? 表达式2 : 表达式3;,显然含义更加明确。
对于数据集合,python中由列表(list)、元组(tuple)、字典(dict)和集合(set)等方式。其会在内存中占用一块连续的内存。
1 | a=["http://c.biancheng.net/python/", 1, [2,3,4] , 3.0] //列表可存储任一形式数据 |
python流程控制(略)
循环
1 | print("计算 1+2+...+100 的结果为:") |
函数
自定义函数
1 | def my_len(str): //自定义 len() 函数 |
值得注意
1 | def add(a,b): |
另外,函数内部还可以定义局部函数。
1 | def outdef (): //全局函数 |
类与对象
定义
1 | class CLanguage : |
越看越像某结构体
1 | class CLanguage: |
封装
1 | class CLanguage : //创建类 |
通过对setname()和setadd()方法进行适当设计,可避免用户对类中属性的不合理操作。而该类中没有提供操作私有方法display()的,即可保护display()在外部不可调用。
继承
1 | class Shape: |
多继承即多个父类,java、c#等因为多继承可能因父类同名方法等存在冲突。而python中按顺序,前面的覆盖后面父类的同名属性
1 | class Person(People, Animal): //多继承 |