当前位置: 首页 > news >正文

【python】基础知识点100问

以下是Python基础语法知识的30条要点整理,涵盖数据类型、函数、控制结构等核心内容,结合最新资料归纳总结:

基础30问

一、函数特性

  1. 函数多返回值
    支持用逗号分隔返回多个值,自动打包为元组,接收时可解包到多个变量

    def func(): return 1, "a"
    x, y = func()
    
  2. 匿名函数lambda
    单行临时函数,适用于简单逻辑,如 lambda x: x*2

  3. 参数传递方式
    包括位置参数、关键字参数、默认参数、可变长参数(*args收集为元组,**kwargs收集为字典)

  4. 全局变量修改
    函数内修改全局变量需用global声明

  5. 函数文档字符串
    使用三重引号定义,可通过__doc__属性访问,IDE悬停显示说明


二、数据类型与操作

  1. 动态类型语言
    变量无需声明类型,赋值时自动推断

  2. 字符串格式化方法
    f-string(f"{name} is {age}")、format()函数及%占位符

  3. 列表推导式
    快速生成列表,如 [x**2 for x in range(10) if x%2==0]

  4. 字典推导式
    {k:v for k,v in zip(keys, values)}

  5. 集合去重与运算
    支持交集(&)、并集(|)、差集(-)、对称差集(^)

  6. 可变与不可变类型
    不可变:数字、字符串、元组;可变:列表、字典、集合


三、控制结构

  1. 连续条件判断
    if 10 <= x <= 20 等效于 x >=10 and x <=20

  2. 三元表达式
    简化条件赋值:result = a if condition else b

  3. 循环中的else
    for/while循环正常结束(非break中断)时执行else块

  4. enumerate遍历索引
    同时获取元素和下标:for idx, val in enumerate(lst)

  5. zip并行迭代
    多列表同步遍历:for a, b in zip(list1, list2)


四、高级特性

  1. 上下文管理器
    with open('file') as f自动处理资源释放

  2. 生成器函数
    使用yield暂停执行并返回值,支持惰性计算

  3. 装饰器语法
    通过@decorator修饰函数,扩展功能而不修改原代码

  4. 类型注解
    可选类型提示:def func(name: str) -> int:


五、模块与异常

  1. 模块导入方式
    import modulefrom module import funcimport module as alias

  2. 异常处理结构
    try-except-else-finally四段式处理错误

  3. 自定义异常
    继承Exception类创建特定错误类型


六、代码规范

  1. 缩进规则
    必须用4空格缩进定义代码块(Tab自动转空格)

  2. 注释写法
    单行注释用#,多行用三引号,文档注释遵循PEP257

  3. 空值处理
    None表示空对象,pd.NA用于Pandas缺失值

  4. 代码分多行
    反斜杠\或括号内自然换行(如列表、元组)


七、实用技巧

  1. 列表与元组的区别
    列表可变(增删元素),元组不可变但查询更快

  2. 字典键的限制
    键必须是不可变类型(如字符串、数字、元组)

  3. 海龟绘图库
    图形化编程入门:import turtle绘制几何图形


扩展建议

以上知识点覆盖Python 3.10+核心语法,建议结合具体场景练习(如用集合去重、用生成器处理大数据)。
在这里插入图片描述

进阶30问

以下是Python进阶语法知识的30条扩展要点(与前一版无重复),结合Python 3.12特性及工程实践整理:

一、高级面向对象

  1. 描述符协议
    通过__get__/__set__方法实现属性托管,常用于ORM框架

    class Temperature:def __get__(self, obj, objtype): return obj._temp * 1.8 + 32
    
  2. 元类编程
    使用__metaclass__控制类创建过程,实现接口验证或自动注册

  3. 类装饰器
    用装饰器修改类结构,如自动添加__repr__方法

  4. 动态属性管理
    __getattr__处理未定义属性访问,__setattr__拦截赋值操作

  5. 多重继承的MRO
    方法解析顺序遵循C3算法,可用ClassName.__mro__查看继承链


二、内存与性能优化

  1. __slots__内存优化
    限制类属性数量,减少内存占用(适用于百万级实例场景)

    class Point:__slots__ = ('x', 'y')
    
  2. 生成器表达式
    惰性计算大数据集:(x*2 for x in range(10**6))

  3. 内存视图memoryview
    零拷贝处理二进制数据,提升numpy数组处理效率

  4. 弱引用weakref
    创建不阻止垃圾回收的对象引用,适用于缓存场景

  5. 协程中的yield from
    委托子生成器执行,简化嵌套协程代码结构


三、并发与异步

  1. GIL机制影响
    Global Interpreter Lock导致CPU密集型多线程无效,需用多进程规避

  2. async/await语法
    协程函数声明与等待,结合asyncio实现高并发IO操作

    async def fetch():await asyncio.sleep(1)
    
  3. 线程池与ProcessPoolExecutor
    concurrent.futures模块实现简易并行任务调度

  4. 协程状态管理
    通过inspect.getcoroutinestate()检测协程运行状态

  5. 异步上下文管理器
    async with管理异步资源(如数据库连接池)


四、元编程与反射

  1. 函数签名检查
    inspect模块解析参数:sig = inspect.signature(func)

  2. 动态代码执行
    exec()执行字符串代码,compile()预编译代码对象

  3. 猴子补丁技术
    运行时修改类/模块的实现,用于紧急修复或测试mock

  4. 抽象基类(ABC)
    abc模块定义接口规范,强制子类实现特定方法

  5. 类型提示泛型
    使用TypeVarGeneric创建泛型类/函数

    T = TypeVar('T')
    class 
http://www.xdnf.cn/news/387739.html

相关文章:

  • .Net HttpClient 使用请求数据
  • 复现nn-Unet模型 实验报告
  • 【RabbitMQ】 RabbitMQ高级特性(一)
  • MYSQL数据库集群高可用和数据监控平台
  • LLM 论文精读(七)Rethinking Reflection in Pre-Training
  • 优化审核模块响应时间从8s降至1.2s的数据库解决方案
  • 初探机器学习与深度学习
  • 产教融合下的康养休闲旅游服务实训室建设要点
  • 什么是卷积神经网络
  • 北斗导航 | 深度学习与北斗导航定位算法结合思路、原理、公式、Python+matlab代码
  • 2025数维杯挑战赛A题【空中芭蕾——蹦床运动的力学行为分析】原创论文分享
  • LabVIEW的PID参数自适应控制
  • MCP(大模型协议文本)服务 的详细解析
  • stm32之SPI
  • 【iOS】Tagged Pointer
  • Linux 第七讲 --- 工具篇(二)gcc/g++与文件编译
  • 用户登录构件示例
  • RL+search = Deep research
  • MySQL 数据库集群部署、性能优化及高可用架构设计
  • 一文了解B+树的删除原理
  • LiteLLM:统一API接口,让多种LLM模型调用如臂使指
  • 【软件工程】基于机器学习的多缺陷定位
  • 【英语笔记(一)】概述词类的作用与语义:名词、代词、数词、代词、动词.....,副词、不定式、分词、形容词等语义在句子中的作用;讲解表语、定语等
  • C++:类和对象4
  • Android Native 函数 Hook 技术介绍
  • Transformer Decoder-Only 算力FLOPs估计
  • 酒店等场所客房沐浴用品批发要点:满足多样需求,把握关键环节
  • 验证码与登录过程逻辑学习总结
  • Linux架构篇、第三章_2_Linux服务器监控与NGINX优化
  • Linux电脑本机使用小皮面板集成环境开发调试WEB项目