欢迎光临
我们一直在努力

python 八股总结

文章目录

  • 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 # 引用外部函数的变量x
    return inner_func # 返回内部函数

    # 创建闭包
    add5 = outer_func(5) # x=5被"记住"
    add10 = outer_func(10) # x=10被"记住"

    print(add5(3)) # 输出: 8 (5+3)
    print(add10(3)) # 输出: 13 (10+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) # 输出: 3, 2, 1

    生成器示例

    def count_down(n):
    while n > 0:
    yield n
    n -= 1

    for num in count_down(3):
    print(num) # 输出: 3, 2, 1

    ✅ 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)
    # 输出:
    # args: (1, 2, 3)
    # kwargs: {'name': 'Alice', 'age': 25}

    赞(0)
    未经允许不得转载:171主机测评 » python 八股总结
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址