以下是Python基础语法知识的30条要点整理,涵盖数据类型、函数、控制结构等核心内容,结合最新资料归纳总结:
基础30问
一、函数特性
-
函数多返回值
支持用逗号分隔返回多个值,自动打包为元组,接收时可解包到多个变量def func(): return 1, "a" x, y = func()
-
匿名函数lambda
单行临时函数,适用于简单逻辑,如lambda x: x*2
-
参数传递方式
包括位置参数、关键字参数、默认参数、可变长参数(*args收集为元组,**kwargs收集为字典) -
全局变量修改
函数内修改全局变量需用global
声明 -
函数文档字符串
使用三重引号定义,可通过__doc__
属性访问,IDE悬停显示说明
二、数据类型与操作
-
动态类型语言
变量无需声明类型,赋值时自动推断 -
字符串格式化方法
f-string(f"{name} is {age}"
)、format()函数及%占位符 -
列表推导式
快速生成列表,如[x**2 for x in range(10) if x%2==0]
-
字典推导式
{k:v for k,v in zip(keys, values)}
-
集合去重与运算
支持交集(&)、并集(|)、差集(-)、对称差集(^) -
可变与不可变类型
不可变:数字、字符串、元组;可变:列表、字典、集合
三、控制结构
-
连续条件判断
if 10 <= x <= 20
等效于x >=10 and x <=20
-
三元表达式
简化条件赋值:result = a if condition else b
-
循环中的else
for/while循环正常结束(非break中断)时执行else块 -
enumerate遍历索引
同时获取元素和下标:for idx, val in enumerate(lst)
-
zip并行迭代
多列表同步遍历:for a, b in zip(list1, list2)
四、高级特性
-
上下文管理器
用with open('file') as f
自动处理资源释放 -
生成器函数
使用yield
暂停执行并返回值,支持惰性计算 -
装饰器语法
通过@decorator
修饰函数,扩展功能而不修改原代码 -
类型注解
可选类型提示:def func(name: str) -> int:
五、模块与异常
-
模块导入方式
import module
、from module import func
、import module as alias
-
异常处理结构
try-except-else-finally
四段式处理错误 -
自定义异常
继承Exception类创建特定错误类型
六、代码规范
-
缩进规则
必须用4空格缩进定义代码块(Tab自动转空格) -
注释写法
单行注释用#
,多行用三引号,文档注释遵循PEP257 -
空值处理
None
表示空对象,pd.NA
用于Pandas缺失值 -
代码分多行
反斜杠\
或括号内自然换行(如列表、元组)
七、实用技巧
-
列表与元组的区别
列表可变(增删元素),元组不可变但查询更快 -
字典键的限制
键必须是不可变类型(如字符串、数字、元组) -
海龟绘图库
图形化编程入门:import turtle
绘制几何图形
扩展建议
以上知识点覆盖Python 3.10+核心语法,建议结合具体场景练习(如用集合去重、用生成器处理大数据)。
进阶30问
以下是Python进阶语法知识的30条扩展要点(与前一版无重复),结合Python 3.12特性及工程实践整理:
一、高级面向对象
-
描述符协议
通过__get__
/__set__
方法实现属性托管,常用于ORM框架class Temperature:def __get__(self, obj, objtype): return obj._temp * 1.8 + 32
-
元类编程
使用__metaclass__
控制类创建过程,实现接口验证或自动注册 -
类装饰器
用装饰器修改类结构,如自动添加__repr__
方法 -
动态属性管理
__getattr__
处理未定义属性访问,__setattr__
拦截赋值操作 -
多重继承的MRO
方法解析顺序遵循C3算法,可用ClassName.__mro__
查看继承链
二、内存与性能优化
-
__slots__内存优化
限制类属性数量,减少内存占用(适用于百万级实例场景)class Point:__slots__ = ('x', 'y')
-
生成器表达式
惰性计算大数据集:(x*2 for x in range(10**6))
-
内存视图memoryview
零拷贝处理二进制数据,提升numpy数组处理效率 -
弱引用weakref
创建不阻止垃圾回收的对象引用,适用于缓存场景 -
协程中的yield from
委托子生成器执行,简化嵌套协程代码结构
三、并发与异步
-
GIL机制影响
Global Interpreter Lock导致CPU密集型多线程无效,需用多进程规避 -
async/await语法
协程函数声明与等待,结合asyncio实现高并发IO操作async def fetch():await asyncio.sleep(1)
-
线程池与ProcessPoolExecutor
concurrent.futures模块实现简易并行任务调度 -
协程状态管理
通过inspect.getcoroutinestate()
检测协程运行状态 -
异步上下文管理器
用async with
管理异步资源(如数据库连接池)
四、元编程与反射
-
函数签名检查
inspect模块解析参数:sig = inspect.signature(func)
-
动态代码执行
exec()
执行字符串代码,compile()
预编译代码对象 -
猴子补丁技术
运行时修改类/模块的实现,用于紧急修复或测试mock -
抽象基类(ABC)
abc模块定义接口规范,强制子类实现特定方法 -
类型提示泛型
使用TypeVar
和Generic
创建泛型类/函数T = TypeVar('T') class