Python 标准输出缓冲:已经 print 了一行,重定向文件为什么还看不见 脚本在终端逐行显示进度,重定向到文件后却很久没有新内容,结束时才一起出现。先确认程序有没有走到 print,再检查标准输出的缓冲方式。正常交互终端通常采用行缓冲,重定向到普通文件时通常采用块缓冲,换行未必立即送出去。... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python timeit 的回收开关:外面已启用 GC,计时里面为什么仍然关闭 一段会产生循环引用的处理函数,在普通脚本里运行正常,换成 timeit 后却观察到不同的对象存活情况。先别急着解释成计时更快或内存泄漏。timeit 默认会在计时期间暂时关闭自动垃圾回收,测试环境已经和原来的运行条件... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python Decimal 信号标记:后一笔计算精确,Inexact 为什么仍为真 批量处理测量值时,程序算完每一行就检查 Inexact,给发生精度损失的记录打标。第一行除不尽,第二行明明得到精确的零点五,却也被判为不精确。问题可能出在诊断状态没有清零:Decimal 的信号标记会保留此前发生过的... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python ConfigParser 键名:Path 和 path 为什么会被判成同一个配置项 一份工具配置同时出现 Path 和 path,开发者认为它们是两个名字,ConfigParser 却报告重复选项;只保留一个再写回,首字母又变成小写。这不是写文件时随机改了拼写,而是选项名称在进入解析器时就经过了归一... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python 包资源读取:模块能从 ZIP 导入,旁边的模板为什么不能当普通路径打开 开发目录里,按模块的 __file__ 拼出模板路径一直可用;把包放进 ZIP 后,模块仍能导入,模板却打不开。原因是导入系统能够理解归档内部位置,而普通文件系统接口未必理解。资源属于包,并不保证它已经是一份可直接打... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python SequenceMatcher:两段重复文字很像,相似度为什么却接近零 比较两段长文本,只有开头一个字符不同,其余都是同一字符,直觉上应该非常相似。SequenceMatcher 默认给出的分数却可能为零。遇到这种结果,先查看匹配器的高频元素启发式,再怀疑文件内容或字符编码;输入长度与重... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python mock.side_effect:响应列表用完后,为什么不会退回默认返回值 测试一个会重试的读取函数,给替身安排四次响应,同时设置默认返回值。原以为第五次会继续返回默认值,测试却出现 StopIteration。这里的响应列表有自己的消费状态;列表耗尽不会自动切换到另一项配置,多调用一次本身... yunqueblog/ 技术教程/ 2026-10-02/ 4 阅读
用 AI 检查三盒换选游戏:看见空盒之后,先问主持人怎么选的 三只盒子里有一颗星,先选一只,再看到主持人打开另一只空盒,这时换不换?AI若直接套用熟悉答案,可能忽略最关键的条件:主持人知道星在哪里吗,能否打开有星的盒子,又按什么规则选择开哪只。 yunqueblog/ AI分享/ 2026-10-02/ 4 阅读
让 AI 推演公开声明:我知道有红卡,还要知道你也听见了 一条消息可能没有告诉我新的直接事实,却改变了我对“别人知道什么”的判断。让AI推演协同谜题时,需要把这两层分开。否则它容易说“大家已经看见红卡,主持人的话没有作用”,漏掉公开声明带来的共同推理起点。 yunqueblog/ AI分享/ 2026-10-02/ 3 阅读
用 AI 设计称重谜题:九件物品为什么两次够,十件却不保证 让AI解称重谜题,它可能很快给出一条成功路线,却没有回答所有情况是否都能解决。若题目还要求最少次数,可以把每次称量看成一次分支:左重、右重、平衡分别能排除什么,以及最终有多少不同结果可以区分。 yunqueblog/ AI分享/ 2026-10-02/ 3 阅读