文章目录
- Python 知识点总结
-
- ✅ Python 基本数据结构(四种)
- ✅ Python 数据类型
- ✅ Break 和 Continue 的区别
- ✅ Return 和 Yield 的区别
- ✅ 深拷贝与浅拷贝
- ✅ Range 与 Xrange 的区别(Python 2)
- ✅ Is 与 == 的区别
- ✅ Lambda 函数
- ✅ 字符串拆分方法
- ✅ 字符串连接:+ 与 join() 的区别
- ✅ 引号区别
- ✅ 函数传参注意事项
- ✅ 装饰器(Decorator)
- ✅ 作用域(Scope)
- ✅ 闭包(Closure)
- ✅ 解释型与编译型语言
- ✅ `__init__` 与 `__new__` 的区别
- ✅ 常用模块
- ✅ List 与 Numpy.Array 的区别
- ✅ 类中的 `self`
- ✅ 双下划线变量(名称修饰)
- ✅ Python 面向对象特征
- ✅ 迭代器与生成器的区别
- ✅ read、readline、readlines 的区别
- ✅ *args 与 **kwargs 的区别
-

Python 知识点总结
✅ Python 基本数据结构(四种)
数据结构可变性有序性允许重复元素
| 列表(List) |
可变 |
有序 |
是 |
| 元组(Tuple) |
不可变 |
有序 |
是 |
| 字典(Dictionary) |
可变 |
无序(Python 3.7+ 有序) |
键不可重复 |
| 集合(Set) |
可变 |
无序 |
否 |
✅ Python 数据类型
类型说明示例
| int |
整数 |
x = 5 |
| float |
浮点数 |
y = 3.14 |
| str |
字符串 |
text = "Hello" |
| bool |
布尔值 |
flag = True |
| list |
列表 |
my_list = [1, "apple", 3.14] |
| tuple |
元组 |
my_tuple = (1, "banana", 2.71) |
| set |
集合 |
my_set = {1, 2, 3} |
| dict |
字典 |
my_dict = {"name": "John", "age": 25} |
| bytes |
字节串 |
b = b"hello" |
| bytearray |
可变字节串 |
ba = bytearray(b"hello") |
| NoneType |
空值 |
x = None |
✅ Break 和 Continue 的区别
语句作用
| break |
终止循环,跳出循环体 |
| continue |
跳过本次循环剩余代码,进入下一轮循环 |
✅ Return 和 Yield 的区别
语句作用
| return |
返回值并终止函数执行 |
| yield |
生成迭代器,暂停函数执行,下次调用时继续 |
✅ 深拷贝与浅拷贝
拷贝类型说明复制层次地址关系
| 浅拷贝 |
复制对象第一层,嵌套对象仍为引用 |
仅一层 |
共享嵌套对象的地址 |
| 深拷贝 |
递归复制所有层次,完全独立 |
所有层次 |
嵌套对象地址也不同 |
✅ Range 与 Xrange 的区别(Python 2)
函数返回类型Python 3 状态
| range() |
列表 |
保留,但返回生成器 |
| xrange() |
生成器 |
已移除 |
✅ Is 与 == 的区别
运算符比较内容
| == |
值是否相等 |
| is |
身份标识是否相同(内存地址) |
✅ Lambda 函数
- 匿名函数:没有函数名的简单函数
- 一次性使用:通常用于简化不需要重复使用的代码
- 快速定义:一行代码定义简单功能
- 基本语法:lambda 参数1, 参数2, …: 返回值表达式,示例:add = lambda x, y: x + y
✅ 字符串拆分方法
方法作用
| split() |
按分隔符拆分字符串 |
| splitlines() |
按行拆分 |
| partition() |
将字符串分为三部分(分隔符前、分隔符、分隔符后) |
✅ 字符串连接:+ 与 join() 的区别
特性+ 运算符join() 方法
| 操作方式 |
直接拼接字符串 |
通过分隔符连接字符串序列 |
| 性能 |
差(每次拼接创建新对象) |
优(一次性创建) |
| 内存效率 |
低 |
高 |
| 适用场景 |
少量字符串拼接 |
大量字符串拼接 |
| 语法 |
str1 + str2 |
separator.join(iterable) |
✅ 引号区别
引号类型用途
| 单引号 ' |
定义字符串 |
| 双引号 " |
定义字符串(可包含单引号) |
| 三引号 ''' 或 """ |
定义多行字符串 / 多行注释 |
✅ 函数传参注意事项
参数类型说明
| 位置参数 |
按顺序传递 |
| 关键字参数 |
按参数名传递 |
| 默认参数 |
参数默认值 |
| 可变参数 |
*args(元组),**kwargs(字典) |
✅ 装饰器(Decorator)
- 本质:嵌套函数,接收被装饰函数作为参数,返回包装后的函数
- 作用:在不改变原函数代码和调用方式的情况下添加新功能
- 应用场景:性能测试、日志记录、权限校验等
✅ 作用域(Scope)
作用域定义位置访问范围
| 局部作用域 |
函数内部 |
仅在函数内 |
| 全局作用域 |
函数外部 |
整个程序 |
| 嵌套作用域 |
函数内部嵌套函数 |
内部函数可访问外部函数变量 |
✅ 闭包(Closure)
定义: 一个函数(外部函数)返回另一个函数(内部函数),内部函数引用外部函数的变量
核心特点:
函数嵌套:一个函数内部定义另一个函数
变量捕获:内部函数引用外部函数的局部变量
状态保持:外部函数调用结束后,其变量状态仍被内部函数保持
基本示例:
def outer_func(x):
def inner_func(y):
return x + y
return inner_func
add5 = outer_func(5)
add10 = outer_func(10)
print(add5(3))
print(add10(3))
✅ 解释型与编译型语言
语言类型执行方式
| 解释型 |
逐行解释执行源代码 |
| 编译型 |
先编译为机器码,再执行 |
✅ __init__ 与 __new__ 的区别
方法作用
| __new__ |
创建对象,返回实例 |
| __init__ |
初始化对象属性 |
✅ 常用模块
- math:数学运算
- datetime:日期时间
- random:随机数
- os:操作系统交互
- sys:系统参数和函数
✅ List 与 Numpy.Array 的区别
类型数学运算存储效率数据类型
| list |
不支持 |
较低 |
可混合 |
| numpy.array |
支持高效运算 |
高 |
通常为同类型 |
✅ 类中的 self
- 含义:指向对象本身的引用
- 三种应用:
- 在 __init__ 中初始化对象属性
- 访问类的属性和方法
- 在类的方法中调用其他方法
✅ 双下划线变量(名称修饰)
- 定义:以双下划线开头、不以双下划线结尾的变量(如 __private_var)
- 作用:Python 自动进行名称修饰,变为 _类名__变量名 的形式
- 访问限制:主要用于类的私有成员,外部不能直接访问(但可通过修饰后的名称访问)
✅ Python 面向对象特征
- 封装:隐藏内部实现,提供接口
- 继承:子类继承父类的属性和方法
- 多态:不同对象对同一消息做出不同响应
✅ 迭代器与生成器的区别
特性迭代器(Iterator)生成器(Generator)
| 定义方式 |
实现 __iter__() 和 __next__() 方法 |
使用 yield 关键字定义的函数 |
| 创建 |
需自定义类实现 |
通过函数定义,自动创建 |
| 状态保存 |
需要手动实现状态保存 |
自动保存函数执行状态 |
| 代码复杂度 |
相对复杂 |
简单清晰 |
| 应用场景 |
自定义复杂迭代逻辑 |
惰性计算、大数据流处理 |
迭代器示例
class CountDown:
def __init__(self, start):
self.current = start
def __iter__(self):
return self
def __next__(self):
if self.current <= 0:
raise StopIteration
num = self.current
self.current -= 1
return num
count = CountDown(3)
for num in count:
print(num)
生成器示例
def count_down(n):
while n > 0:
yield n
n -= 1
for num in count_down(3):
print(num)
✅ read、readline、readlines 的区别
方法作用返回值适用场景
| read() |
读取整个文件内容 |
字符串 |
小文件一次性读取 |
| readline() |
读取下一行内容 |
字符串 |
逐行处理大文件 |
| readlines() |
读取所有行 |
字符串列表 |
需要行列表的场景 |
✅ *args 与 **kwargs 的区别
特性*args**kwargs
| 全称 |
Arguments(位置参数) |
Keyword Arguments(关键字参数) |
| 用途 |
接收任意数量的位置参数 |
接收任意数量的关键字参数 |
| 类型 |
元组(tuple) |
字典(dictionary) |
| 传递方式 |
非键值对参数 |
键值对参数 |
| 命名要求 |
变量名固定为 args |
变量名固定为 kwargs |
基本使用示例
def example_func(*args, **kwargs):
print(f"args: {args}")
print(f"kwargs: {kwargs}")
example_func(1, 2, 3, name="Alice", age=25)