-
Python项目运行需三步:确认环境(python--version)、安装依赖(pipinstall-rrequirements.txt)、运行入口文件(如pythonmain.py);报错时依ModuleNotFoundError、ImportError、语法错误逐项排查。
-
Python注释只能用#,三引号字符串不是注释;docstring必须位于模块/函数/类定义正下方首行,用"""包裹并绑定__doc__属性;推荐Google或NumPy风格,需统一且聚焦“为什么”而非“做什么”。
-
使用for循环结合if语句可筛选复合条件并求和,如对偶数且大于10的数求和得68;通过and、or、not组合多条件,可处理奇数小于5或大于20之和为56;遍历range实现1到100被3整除但不被5整除的数和为1266;也可用sum与生成器表达式简化代码。
-
str.replace()适用于固定子串的简单替换,速度快且安全;re.sub()适用于基于模式的复杂替换,支持正则表达式匹配、捕获组和条件替换,但需注意转义和性能问题。
-
将Python脚本打包为双击运行的.exe文件,首选PyInstaller:安装后执行pyinstaller--onefile--windowed--icon=app.ico--name=计算器main.py,注意处理相对路径、手动添加数据文件及杀毒软件误报等问题。
-
pandas.pivot_table中缺失值需分两步处理:fill_value仅填充空组,fillna()支持全表、按列、方法等灵活填充,还可结合aggfunc定制逻辑及多级索引分组填充。
-
PyMongo的limit()方法会在MongoDB服务器端直接执行限制操作,仅传输指定数量的文档到客户端,而非先拉取全部数据再由Python过滤,从而显著提升性能与内存效率。
-
SQLAlchemy批量更新无法自动只改变化字段,必须手动比对新旧值并构造差异字典传给bulk_update_mappings();若需ORM事件或默认值计算,则应使用merge()或逐个setattr后flush()。
-
Python爬虫跨语言采集核心难点是编码识别、解码还原与文本归一化:需用charset-normalizer精准探测真实编码,安全decode为Unicode,再统一清洗归一化输出。
-
if-elif-else按从上到下顺序独占式判断,首个为True的分支执行后即终止;if必有且仅一个,elif可多个,else可选;条件须返回布尔值,非布尔类型依真值规则转换。
-
Python中字符串拼接时若误将单引号作为字面量包含在格式化模板中,会导致生成的raw_data实际多出首尾单引号,破坏HTTP请求体格式,从而引发API认证失败。
-
pandas的rolling/expanding自定义函数必须返回标量,返回Series/list会报错;需多输出时用apply+result_type='expand';expanding与rolling规则一致,仅窗口行为不同。
-
多线程下需用threading.Lock串行化rich.progress.update()调用,主线程创建Progress和锁,子线程持task_id并在锁内更新;或改用Live配合线程安全状态管理;multiprocessing不支持Progress共享。
-
最常用方法是os.walk()和pathlib。os.walk()递归遍历目录,返回(路径,子目录,文件)三元组;pathlib的rglob()更简洁,适合现代Python项目。
-
在Snowpark中使用df.na.fill()填充缺失值时,若目标列为DecimalType(如DecimalType(38,12)),直接传入int或float(如0或0.0)会因类型不匹配而被跳过;必须显式提供decimal.Decimal实例才能成功填充。