-
数据清洗关键在于精准识别与处理脏数据,需结合分布分析与业务规则校验、统一格式、少删多推并留痕、用模型反推验证效果,且须持续迭代。
-
爬虫中常见的网络请求异常包括连接错误、超时和HTTP状态码异常,需通过try-except分层捕获并针对性处理。
-
Python继承通过MRO确定方法查找顺序,使用super()按MRO动态调用父类方法,属性查找沿实例、类、继承链向上搜索,实现代码复用与协作式调用。
-
API请求失败时应区分错误类型(仅重试连接异常、超时及5xx)、采用指数退避+随机抖动(如1s→2s→4s,叠加0.5~1.5抖动因子)、限制重试3~5次及总耗时,并优先用tenacity等成熟库实现。
-
Python装饰器核心是函数作为一等公民和闭包机制,通过@语法在不修改原函数代码的情况下为其添加新功能,如日志、权限控制、缓存等,提升代码复用性和可维护性。
-
Python变量赋值用=直接绑定对象而非复制数据,支持单值赋值、多变量批量赋值及解包;变量名需符合命名规则,推荐snake_case风格。
-
Python位运算符&、|、~、^、<<、>>是对整数逐位操作的,非布尔逻辑;如5&3得1而非True,~5为-6,^是异或非幂运算(**才是),右移负数为算术右移(-5>>1得-3)。
-
在Python中计算增长率时,pct_change方法是首选,因为它简化了代码、内置处理NaN值,并支持灵活的周期参数。首先,它一行代码即可完成增长率计算,提升开发效率;其次,自动处理缺失值,避免除零错误;再者,通过periods参数轻松应对不同周期分析需求。对于缺失值,可在计算前使用fillna填充、interpolate插值或dropna删除;对于异常值,可通过统计识别、平滑处理或对数变换减轻影响。进阶用法包括累计增长率计算、分组增长率分析,并结合原始数据和趋势平滑进行深入分析。
-
GIL是CPython解释器的实现细节而非Python语言特性,它通过互斥锁确保同一时刻仅一个线程执行字节码,使CPU密集型任务无法真正并行,但I/O密集型任务仍可受益。
-
FastAPI流式传输大文件需用StreamingResponse配合自定义生成器分块读取,禁用FileResponse;上传大文件应绕过UploadFile改用Request.stream(),并配置Uvicorn、Nginx及Cloudflare的请求体大小限制。
-
Python中检查文件或目录是否存在主要使用os.path.exists()、os.path.isfile()和os.path.isdir()函数,分别用于判断路径是否存在、是否为文件、是否为目录;为避免竞态条件和权限问题,推荐采用EAFP(请求宽恕比请求许可更容易)原则,直接尝试操作并用try-except处理异常;自Python3.4起,pathlib模块提供更现代、面向对象的方式,通过Path对象的exists()、is_file()、is_dir()方法实现相同功能,代码更简洁可读,建议在新项目中
-
直接用普通list存子模块会报错,因PyTorch不自动注册其参数和forward方法;须改用nn.ModuleList或nn.ModuleDict才能被parameters()、to(device)等识别并参与训练。
-
requests返回401是因为它与Selenium会话完全隔离,无法自动获取浏览器Cookie;必须在关闭driver前用driver.get_cookies()提取并转换为{name:value}字典,且需注意HttpOnly字段不可读、domain匹配及Headers(如User-Agent、Referer、X-CSRFToken)同步。
-
os.chmod()改不了权限的主因是传入十进制数而非八进制字面量(如误用644而非0o644),或用户无权修改、路径为符号链接、父目录不可写。
-
pipshow无法批量导出license字段,多数包该字段为空或不规范;真正可用的license信息需解析dist-info/METADATA文件,推荐用pip-licenses工具导出CSV或标准化SPDX格式,但须人工复核合规性。