-
Python输出小数主要通过格式化控制显示位数与四舍五入,推荐f-string(如f"{3.14159:.2f}"),其次format()和%格式化;格式化仅影响显示,不改变float固有精度,精确计算需用decimal模块。
-
typechecked装饰器不能只靠get_type_hints,因其仅提取注解而无法执行实际类型校验;必须结合get_origin、get_args递归解析泛型与联合类型,并用isinstance逐层验证值是否满足约束。
-
Canvas坐标系原点在左上角,x向右、y向下递增;create_rectangle(x1,y1,x2,y2)以左上/右下角定义矩形,create_line按点序列连线,create_polygon需显式闭合或设fill才闭合。
-
Flask本身无内置MVC机制,需开发者主动分层:models不依赖Flask上下文,views仅作协议适配,controller封装业务逻辑并可脱离Web环境运行。
-
Python中用replace()做全文替换常出错,主因是未处理编码(如GBK文件在UTF-8环境报错)、换行符不一致(\r\nvs\n)及w模式异常导致原文件丢失;安全做法需用chardet探测编码、内存中完成替换、原子化写入临时文件再替换。
-
PythonWeb开发核心在于理解请求响应生命周期、路由分发、中间件顺序与状态管理,而非框架语法;掌握WSGI/ASGI、路由映射、中间件执行链及request作用域原理,才能深入调试与扩展。
-
f-string是Python字符串拼接的首选方式,编译期完成格式化、运行时开销小;大量片段拼接应使用str.join();避免在循环中用+=拼接长字符串。
-
orjson在多数实际场景下序列化比json快2–5倍、反序列化快1.5–3倍,但性能差距高度依赖数据结构,纯字符串或小字典差异甚微,而含大量float、嵌套list或datetime的数据才显著拉开距离。
-
tuple比list更省内存,因其无扩容预留、无allocated字段、对象头更轻量,且字面量可编译期复用并缓存哈希值;sys.getsizeof显示小32–40字节。
-
在asyncdef中不能直接yieldfrom异步生成器,须用asyncfor+yield手动展开;或借助aiostream.stream.chain等库封装;切勿误用to_thread或run_in_executor。
-
pd.StringDtype('pyarrow')更快更省内存,因其采用PyArrow列式布局替代Pythonobject数组,减少对象分配、指针跳转和GC压力;含重复值或长文本时内存降30%–70%,字符串操作快2–5倍。
-
推荐使用标准项目结构并结合虚拟环境管理Python工程。1.手动创建包含main.py、utils包、config.py和requirements.txt的目录结构;2.用python3-mvenvvenv创建虚拟环境并激活,实现依赖隔离;3.通过pipfreeze>requirements.txt导出依赖,便于环境复现;4.使用PyCharm等IDE可自动创建项目及虚拟环境,适合初学者;5.可选cookiecutter等模板工具生成专业项目结构。核心是保持代码结构清晰、依赖明确,基础方式适用于多数
-
Mock接口测试应优先patch代码中直接调用的HTTP函数(如api_client.send),而非底层库;responses适用于无法修改import的黑盒场景,但不支持异步;避免硬编码JSON,宜复用fixture或数据类;时间相关行为需精准patch实际调用函数并用side_effect控制时序。
-
ValueError常见于类型正确但值非法的情况,如字符串转数字含非数字字符、解包元素数量不匹配、内置函数传入无效参数、日期格式解析不一致,应通过预判条件或异常捕获处理。
-
Python3.9无内置中文界面,错误信息是否中文取决于系统locale设置:Windows需设为中文区域且禁用UTF-8Beta选项;Linux/macOS需配置LC_ALL=zh_CN.UTF-8;IDE界面语言与其自身设置有关,与Python版本无关。