循环控制流精讲:从三要素到break/continue,彻底搞懂while与for
1. 为什么学完条件判断必须马上碰循环这块硬骨头先直接说结论循环是让程序从做一件事变成做一万件事的分水岭。你前面的变量、数据类型、运算符包括刚学完的条件判断本质上都是在指挥程序单次执行。哪怕 if 再复杂程序跑一遍也就走完一条路。可真实场景里几乎没有哪个需求是只干一次就能收工的批量改文件名、轮询接口状态、累加报表里的每一行、遍历数组找最大最小值……这些活儿全靠循环撑起来。我当年学这部分的时候教材用的也是这种章节号——3.6 控制下面细分了顺序、选择、循环。当时只觉得控制这个词很抽象后来写多了才明白程序运行的控制权其实就掌握在顺序按行走、条件挑路走和循环绕圈走这三板斧手里。而循环之所以放最后讲是因为它的心智模型和前面完全不同前面是顺流而下循环是带着状态反复回到同一条河。观念不转过来代码一出错就是死循环或者少跑几轮这种非常隐蔽的逻辑病。这篇笔记不是照抄教材定义而是站在我踩过坑、回头补课的角度把 3.6.7 循环这一节拆开揉碎。适合正学到控制流章节的初学者也适合那种看教材能看懂、自己写就卡壳的复习型选手。我会把循环的三要素、几种循环语句的选择逻辑、循环控制语句的使用边界以及最让人头疼的嵌套和死循环问题全部用代码和实际场景过一遍。看完你应该能回答三个问题什么时候用 while什么时候用 forbreak 和 continue 到底怎么选。先说个从小白到老手都会反复踩的底层误区很多人以为循环的关键字是核心其实循环的条件才是灵魂。关键字只是形式条件写错了程序要么不干活要么干起活来停不住。这个观点整篇都会反复提到。2. 循环的本质就一句话三要素驱动的重复执行2.1 拆穿循环的底层套路初始化、条件判断、迭代更新任何循环不管披着什么语法外衣内里永远是一个三角结构在转。初始化起点循环变量第一次取值是多少。比如i 0或者total 0。条件判断闸门每次进入循环体之前都要问一次现在这状态还能继续吗满足才进不满足就出去。迭代更新推进每次执行完循环体改变循环变量的值好让条件判断有机会变成假。比如i或者total item。我用一个最直白的场景说明你手上有 10 个快递要逐个确认签收。初始化就是你从第 1 个开始条件判断是手上的快递还有没有剩余迭代更新是你签收完一个把待办数量减 1。三步缺了哪一步活儿都干不利索。缺初始化你根本不知道从哪儿开始缺条件你会无限签收下去缺更新你永远卡在第 1 个快递上原地打转。对应到代码里最常见的就是这种模式i 0 # 1. 初始化 while i 10: # 2. 条件判断 print(i) # 循环体 i 1 # 3. 迭代更新这里 i 从 0 开始每次加 1直到 i 10 时不满足i 10循环结束。流程上等价于一问一答、干活、往前挪一步再问再答。2.2 一个反直觉的真相循环体里改了条件变量会怎样上面这个三角结构看着人畜无害实际写起代码来新手最爱犯的一个错就是把迭代更新藏到循环体中间甚至条件判断里。比如下面这段i 0 while i 10: i 1 if i 5: i 2 # 中途额外改了循环变量 print(i)你预期的输出可能是 0 到 9实际输出是1、2、3、4、5、8、9、10。因为 i 在 i 5 的时候被额外加了 2直接跳过了 6 和 7而且最终多打印了个 10。程序没报错逻辑也没死循环但结果就是不对。这种问题最难排查因为语法全对纯粹是循环变量被劫持了。我个人的建议是循环变量只在迭代更新的位置动它循环体内部不要轻易修改。如果确实需要根据某些条件提前跳过或加速优先考虑 break 和 continue而不是直接动循环变量。关于这两个关键字后面专门有一节细聊。3. while、for、do-while三种循环各自的脾气和使用边界3.1 用哪个循环取决于你知不知道要循环多少次教材里会把循环分成好几种很多初学者背了语法却分不清应用场景最后全都用 while 硬扛。其实选择逻辑特别简单循环次数事先能否确定。如果事先明确知道要执行几轮比如遍历一个长度为 n 的数组首选 for。如果只知道结束条件不知道具体轮数比如不断读取用户输入直到输入退出首选 while。如果无论如何都要先执行一次循环体再判断是否继续那就需要 do-while或者用 while True 加 break 模拟。用 Python 举例for 的典型形态是配合 range 或者直接遍历容器# 明确知道跑 100 次 for i in range(100): print(f第 {i} 次) # 明确要遍历列表里的每一项 names [A同学, B同学, C同学] for name in names: print(name)while 的典型场景则是条件驱动# 不知道要输入多少次直到输入 stop cmd while cmd ! stop: cmd input(请输入命令输入 stop 退出) print(你输入的是, cmd)3.2 三种语言实现同一个场景看完就知道共性为了把用哪个循环这个问题讲透我用三种编程风格写同一个需求求 1 加到 100 的和。你会发现底层三要素完全一致只是语法长相不同。Python 风格total 0 for i in range(1, 101): total i print(total) # 5050C 风格int total 0; for (int i 1; i 100; i) { total i; } printf(%d\n, total);JavaScript 风格let total 0; for (let i 1; i 100; i) { total i; } console.log(total);看到没初始化i 1、条件i 100、更新i永远整整齐齐排在那里。你只要抓住这个共性换任何语言都只是换皮不换骨。3.3 什么时候该用 while True break 这种野路子有同学问如果循环条件比较复杂能不能直接在 while 后面写一长串判断能但不推荐。条件一旦复杂读代码的人要停下来算半天而且很容易漏掉边界。更稳妥的做法是主循环用 while True出口用 break 显式控制。这个模式在实战中非常常见比如菜单程序while True: choice input(请选择1.查询 2.退出) if choice 2: print(已退出) break # 其他业务处理这么写的理由很朴素你把什么情况下退出这个最关键的判断用一行 break 明明白白写在循环体里任何人一看就懂。相比在 while 条件里堆逻辑这种写法把复杂度摊平了。很多资深开发者写服务端的主循环就是这么干的。4. 循环控制的两个出口break 和 continue 千万别用反4.1 用真实业务场景拆解 break 和 continue 的区别break 的意思是“彻底跳出整个循环”continue 的意思是“结束当前这一轮直接进入下一轮”。一字之差效果差出十万八千里。我拿查成绩的场景举例假设你有一个学生成绩列表你要做两件事。第一件事找到第一个及格的学生就停scores [55, 62, 48, 90, 73] for score in scores: if score 60: print(第一个及格分数是, score) break # 找到就立刻退出后面 90、73 不再看第二件事跳过不及格的只打印及格的scores [55, 62, 48, 90, 73] for score in scores: if score 60: continue # 不及格本轮直接结束不打印 print(及格分数, score)这两个代码长得像结果完全不同。break 是中断器continue 是过滤器。写错的最常见后果是该提前结束的继续傻跑白白浪费资源该过滤掉的继续执行后续代码输出一堆脏数据。4.2 break 只跳一层这个坑让嵌套循环结果错得离谱如果循环被嵌套成两层甚至三层break 的行为需要特别小心break 只能跳出离它最近的那一层循环。很多人以为 break 会把所有循环全停掉这是天大的误会。看一个实际例子找出二维矩阵里第一个小于 0 的元素matrix [ [1, 2, 3], [4, -5, 6], [7, 8, 9] ] for row in matrix: for item in row: if item 0: print(找到负数, item) break # 只跳出内层循环外层还会继续走这个 break 一执行内层循环结束但外层循环会接着处理下一行 [7, 8, 9]。如果你只想找第一个就停这种写法就会在后面多一些无用输出。解决办法也不复杂用一个标志变量把外层也拦住found False for row in matrix: if found: break for item in row: if item 0: print(找到负数, item) found True break或者用 Python 的 for-else 结构循环没被 break 打断才进入 else 分支这个技巧很冷门但很好用。无论如何记住一条经验嵌套循环里写 break先问自己一句——我到底想跳出哪一层4.3 continue 遇到 while 时的暗坑小心迭代更新被跳过continue 在 for 循环里用得很顺手但放到 while 循环里会埋一个非常隐蔽的雷。看下面这段代码你猜会发生什么i 0 while i 10: if i % 2 0: continue # 偶数就跳过本轮 print(i) i 1这段代码一旦运行程序会卡死。为什么因为当 i 为偶数时continue 直接把后续的i 1也跳过了i 一直保持偶数值不变条件i 10永远为真死循环了。这类 bug 的可怕之处在于它既不报错也不闪退程序就像睡着了一样只有 CPU 风扇在转。排查起来也很费劲因为看起来逻辑很顺畅。我的建议是while 循环里尽量把迭代更新放在循环体最前面或者干脆避免在 continue 之后再更新变量。更保险的做法是用 for 循环替代 while因为 for 的迭代更新由循环机制本身管理不容易被 continue 跳过。5. 嵌套循环的实战套路从冒泡排序到遍历表格5.1 为什么嵌套循环理解难度陡增如果一个循环解决的是一维问题嵌套循环解决的就是二维问题。比如你面前有一列快递一维数组一个循环就能遍历完但如果是 10 排货架、每排 10 个柜子二维结构就要两层循环外层管排数内层管柜子号。嵌套循环的难点不在语法在于你要时刻想清楚当前这层循环在遍历什么维度。一旦维度混了结果就全乱了。举个最经典的例子——打印乘法表for i in range(1, 10): # 外层控制行 for j in range(1, i 1): # 内层控制列且列数随行数变化 print(f{j}x{i}{i * j}, end ) print() # 换行外层 i 从 1 到 9内层 j 从 1 到 i。内层范围依赖外层的当前值这就让两层之间产生了联动。理解了这个联动你才算真正会写嵌套循环。5.2 一个排序的例子把嵌套循环从根上吃透不纸上谈兵拿最基础的冒泡排序来实操。冒泡排序之所以非常适合学习嵌套循环是因为它的内层循环完全是受外层控制的。排序的思路是每一轮把最大的元素冒泡到末尾然后下一轮不再管它。nums [5, 2, 9, 1, 7] n len(nums) for i in range(n - 1): # 外层总共需要多少轮 for j in range(n - 1 - i): # 内层每轮比较的次数越来越少 if nums[j] nums[j 1]: nums[j], nums[j 1] nums[j 1], nums[j] print(nums) # [1, 2, 5, 7, 9]外层 i 控制还剩多少元素没排好内层 j 控制当前轮需要相邻比较的范围。i 0 时内层要比较 n-1 次i 1 时因为最大的已经到末尾只需比较 n-2 次。这就是为什么内层范围是n - 1 - i。你去观察整个排序过程会明显感受到外层定大局、内层做细节的分工。以后无论你写矩阵转置、遍历二维列表、还是生成坐标对嵌套循环的心智模型都是这样外层定维度内层做穷举。5.3 嵌套循环的性能代价先学会算执行次数学嵌套循环还有一个不得不提的话题——执行次数。很多程序员写代码时对性能没概念直到数据量大起来才崩。假设外层跑 n 次、内层跑 m 次总执行次数大约就是 n × m。如果 n 和 m 都是 10000那就是 1 亿次循环体执行这个量级在纯解释型语言里基本可以感受到明显卡顿。一个实用的经验是能不嵌套就不嵌套能缩小内层范围就缩小范围。比如上面冒泡排序的内层范围就是n - 1 - i比每次固定跑n - 1少了一半的无效比较。别小看这个优化数据量一上来运行时间的差距是数量级的。6. 循环学习中最容易翻车的四个场景与排查方法6.1 死循环程序不报错但就是停不下来死循环的成因非常简单循环条件永远为真。最常见的三个原因我列一个排查清单原因典型代码排查思路忘记写迭代更新while i 10:但循环体里没有i 1检查循环变量是否随每次执行发生变化迭代更新被 continue 跳过while 里 continue 出现在 i 1 之前把更新语句放到 continue 前面条件方向写反while i 0但 i 初始就是 0手推一遍初始值和更新方向死循环在开发环境里还好顶多卡死重启在线上环境一旦发生服务直接失去响应是非常严重的事故。学循环的第一天就该学会如何快速发现死循环观察程序是否在某个位置长时间不输出、CPU 占用率是否飙高。必要时在循环体最前面加一个临时打印看它有没有在迭代。6.2 差一错误循环次数和预期总是差 1差一错误off-by-one是循环领域最经典的逻辑 bug。我写个最简单的例子想打印 5 次你好写成for i in range(1, 5)跑出来只有 4 次。因为 range 是左闭右开区间包含 1 但不包含 5。类似的还有遍历数组时数组长度为 n下标是 0 到 n-1。如果你在循环里用 n还是 n没想清楚要么漏掉最后一个元素要么下标越界报错。我的个人习惯是在写循环之前先用最简单的小样本比如 n3手动推演一遍。不要嫌麻烦这个习惯能挡掉一半以上的循环 bug。比如你想遍历长度为 5 的列表就先把下标 0、1、2、3、4 在草稿纸上过一遍确认循环条件写成i 5而不是i 5。6.3 修改被遍历的列表迭代器和原始数据互相干扰这是进阶型坑但学习笔记里必须提。循环遍历一个列表的同时如果又在循环体里对这个列表进行增删操作结果会变得非常诡异。很多初学 Python 的人写过这样的代码nums [1, 2, 3, 4, 5] for num in nums: if num % 2 0: nums.remove(num) # 边遍历边删这段代码的结果是 [1, 3, 5] 吗不是。实际跑出来很可能是 [1, 3, 4, 5]——甚至在不同 Python 版本里行为还不完全一致。原因在于遍历过程中列表的索引和内容一直在变迭代器完全被打乱了。解决思路有几个一是遍历副本删原列表二是用列表推导式直接生成新列表三是记录需要删除的下标循环结束后统一处理。我推荐第二种代码最简洁nums [1, 2, 3, 4, 5] nums [num for num in nums if num % 2 ! 0]6.4 循环里新建容器却放在循环外面数据串了的惨案最后这个坑很隐蔽循环体里需要独立累积的数据结果容器在循环外面初始化导致每一轮的数据都堆在一起互相覆盖。看个实际场景groups [] for i in range(3): temp [] # 应该在循环内初始化 for j in range(3): temp.append(i * 3 j) groups.append(temp)如果把temp []提到循环外面每次 append 的其实是同一个列表对象的引用最后 groups 里全是同一个列表的内容。这种 bug 在初学阶段非常容易遇到而且排查难度不小因为单看打印结果会觉得数据都对只是重复了。经验教训就一条每一轮循环需要独立的数据容器初始化代码一定放在循环体内部。想清楚这个变量是只需要一份还是每轮各要一份。前者放外面后者放里面。7. 一个完整案例用循环实现月度账单统计7.1 问题描述拿到一堆流水要按天汇总成报表理论讲了不少最后用一个贴近实际的完整案例串起来。假设你拿到一个月的消费流水清单格式是日期, 金额的文本行。需求是按日期分组计算每天的总支出同时统计哪些天支出超过 500 元。这个任务天然适合循环外层按天遍历内层对同一天的流水累加。放到真实开发里这就是一个简化版的报表引擎。先构造流水数据records [ (05-01, 120), (05-01, 350), (05-02, 80), (05-02, 230), (05-02, 310), (05-03, 600), (05-03, 45), (05-04, 520) ]7.2 第一次实现用嵌套循环和条件判断完成统计使用嵌套循环实现外层遍历日期内层遍历所有流水遇到匹配日期就累加。这样可以保证每一轮独立统计逻辑层次非常清晰。dates [] for record in records: if record[0] not in dates: dates.append(record[0]) for date in dates: total 0 for record in records: if record[0] date: total record[1] if total 500: print(f{date} 总支出 {total} 元超预算) else: print(f{date} 总支出 {total} 元)这里用到了两层循环和一个 if 判断。输出结果里05-03 和 05-04 会标记为超预算因为它们的日总额都超过了 500 元。这个写法很好懂缺点是每次都要从第一条记录遍历到最后一务流水一多就低效。7.3 第二次优化用字典配合单层循环提升效率用嵌套循环能解决问题但不够优雅。第二次优化用字典来聚合只跑一次循环效率高很多。这个思路在工作中非常常见用散列结构替代内层循环。daily_total {} for date, amount in records: if date in daily_total: daily_total[date] amount else: daily_total[date] amount for date, total in daily_total.items(): if total 500: print(f{date} 总支出 {total} 元超预算) else: print(f{date} 总支出 {total} 元)这个版本的循环次数从日期数 × 流水数降到了流水数代码也更短语义更清晰。如果你熟悉 Python 的字典操作还可以用defaultdict或者dict.setdefault进一步精简。不过核心思想没变能用单层循环加映射解决的就别用嵌套循环硬凑。7.4 复盘这个案例循环思维的三步训练法这个案例完整走下来其实是一个很好的循环思维训练。拆开看是三个步骤拆数据维度。流水数据有两个维度日期和金额。先明确你要处理的是按日期聚合所以外层循环必定是日期列表。选循环结构。日期的数量事先不确定因此外层用遍历式循环金额的累加需要反复执行因此内层是累加操作。整个流程是分组-累加-判断。优化循环层数。第一版嵌套循环是对的但不够精。第二版引入了映射结构把内层循环消掉了。这套三步法既适合学习也适合工作。真的遇到数据量大的时候先从最直觉的写法开始保证正确然后再想着把内层循环换成字典或集合。千万不要一上来就追求最优解那是经验堆出来的不是推理推出来的。8. 写在最后的经验之谈循环这块内容教材上篇幅不多但它值得你拿出几倍的时间去反复试错。我见过不少同学前面学得飞快到循环这里就卡住了原因不是笨而是循环的调试手段和前面的代码完全不是一个套路——它需要你在脑子里代跑程序的每一轮状态变化。这个能力只能靠练。我的建议是给自己安排三组练习第一组是各种循环的基本写法目标是闭着眼睛写出 for、while、break、continue 的组合第二组是纯逻辑题比如冒泡排序、九九乘法表、求最大公约数目标是训练嵌套循环和条件判断的配合第三组是自己写一个小工具比如上面的账单统计那样从需求到代码完整走一遍。完成这三组循环就算真正过门槛了。最后分享一个常用的小技巧调试循环的时候别只在代码末尾打印一次结果要打印每一轮的关键变量值比如第 i 轮、当前 total 是多少、条件判断结果是什么。这一步对定位死循环、差一错误、变量被意外修改效果立竿见影。等确认无问题了再把这些调试打印删掉。这个小习惯帮我省下的排查时间绝对可以按小时计算。

相关新闻

统一指标口径之后,如何构建高效月度经营分析闭环?

统一指标口径之后,如何构建高效月度经营分析闭环?

导语 很多企业完成指标口径统一后,依然面临不少困境:月度经营分析会上各部门还是对数据各执一词,分析完只有结论没有可落地的行动,分析结果没法沉淀到下一轮经营循环,始终停留在"看数"阶段没法进阶到决策智能…

2026/10/14 22:44:12 阅读更多 →
大页内存与透明大页:从TLB到性能调优的全解析

大页内存与透明大页:从TLB到性能调优的全解析

看到这个标题点进来的朋友,多半是在服务器上被内存性能问题折腾过的。大页内存(Huge Pages)和透明大页内存(Transparent Huge Pages)这俩名字长得像,不少人都以为是一回事,实际上它们从设计思路…

2026/10/14 22:44:12 阅读更多 →
建筑工地目标检测数据集实战:从数据体检到YOLOv8调参

建筑工地目标检测数据集实战:从数据体检到YOLOv8调参

简介:面向目标检测研究与工程应用,这套建筑工地YOLO数据集包含训练集201张、验证集37张共238张真实工地图片,覆盖工程机械、塔吊、人员、钢筋、脚手架等10类高频施工目标,可直接支撑智慧工地安全监控、施工进度管理、施工机器人环…

2026/10/14 22:44:12 阅读更多 →

最新新闻

用C++实现最简PE加壳器:从解析文件到解密壳落地

用C++实现最简PE加壳器:从解析文件到解密壳落地

简介:这是一套面向C学习者和软件安全初学者的基础加壳实现源码包,围绕PE文件结构改造与程序入口点转移展开,完整演示了编写壳代码、注入保护逻辑、再封装可执行文件的过程。压缩包内共38个文件,体积仅1.47MB,涵盖10个头…

2026/10/14 23:26:59 阅读更多 →
HDFS数据治理实战:从元数据、生命周期到权限管理的完整路径

HDFS数据治理实战:从元数据、生命周期到权限管理的完整路径

身边不少做大数据的同行最近都有同一个感受:HDFS集群越滚越大,几百T甚至PB级的数据堆在那里,可真到用的时候又不敢拍胸脯说哪份数据是准的、谁会去碰、谁能删。这个问题不会因为你硬扛着就自动消失,拖到最后一两周磁盘告急、审计要…

2026/10/14 23:26:59 阅读更多 →
Java图书管理系统源代码实战:从跑通到改造的完整指南

Java图书管理系统源代码实战:从跑通到改造的完整指南

简介:这份Java图书管理系统源代码面向Java初学者与课程设计开发者,提供一套可直接运行的图书馆业务管理实现,帮助理解从需求到部署的完整开发流程。系统覆盖图书录入、查询、借阅、归还、续借及状态跟踪等核心功能,并涉及MVC分层、…

2026/10/14 23:26:59 阅读更多 →
自动化办公实战:从RPA到AI大模型,搭建高效工作流

自动化办公实战:从RPA到AI大模型,搭建高效工作流

1. 自动化办公的底层逻辑与方案选型1.1 为什么现在谈自动化办公,而不是三年前三年前我也尝试过把日常办公流程自动化,当时用的还是按键精灵加Excel宏那一套,效果怎么说呢——能用,但极其脆弱。网页改个版、弹窗位置挪一下、系统响…

2026/10/14 23:26:59 阅读更多 →
小红书服饰数据探索包:Python分析链路与避坑指南

小红书服饰数据探索包:Python分析链路与避坑指南

简介:本资源围绕小红书服饰行业数据展开探索,面向数据分析初学者、计算机专业学生及毕业设计人群,提供一套可复用的行业分析实践案例。项目基于2022年4月21日至5月20日的小红书服饰行业数据,涵盖笔记趋势、内容关键词、品类占比、…

2026/10/14 23:26:59 阅读更多 →
X-12-ARIMA季节性调整实战:编译、调用与诊断

X-12-ARIMA季节性调整实战:编译、调用与诊断

简介:本资源是一套面向经济学、金融学及数据科学学习者与从业者的X-12-ARIMA季节性调整可运行源码包,聚焦时间序列分析中的核心痛点——剥离季节性波动以识别真实趋势。资源包含7个文件:1个核心Python脚本(seasonal_adjustment.py…

2026/10/14 23:25:53 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →