Python turtle绘图全实例:从螺旋到分形与排序动画
说实话很多人一听说 turtle 绘图第一反应就是“给小学生玩的玩具”。但真正用 Python 写过几个实例之后你会发现它几乎是学习编程逻辑最好的可视化工具循环、函数、递归、坐标、角度、随机数这些东西在 turtle 里全都变成了看得见摸得着的东西。这篇文章围绕 turtle 绘图多个实例展开从最简单的正方形螺旋、五角星一路画到科赫雪花、分形树和冒泡排序可视化把每个图形的原理、代码和踩坑点都拆开讲不管你是有基础的程序员还是刚学 Python 的新手都能直接照着敲出自己想要的效果。选 turtle 还有一层现实原因它是 Python 标准库自带的模块不需要安装任何第三方包打开编辑器就能用。就算你的环境里连 pip 都懒得配turtle 也永远在那里等着你。更重要的是turtle 的绘图逻辑和真实图像处理、动画渲染、游戏开发里的坐标系概念是相通的。搞懂了 turtle后面学 Pygame、Tkinter Canvas甚至任何图形库的屏幕坐标换算都会顺很多。1. 动手前的必修课turtle 的坐标系与画笔状态1.1 turtle 到底是怎么想问题的turtle 源自早期的 Logo 语言核心思想很简单屏幕上有一只海龟你给它下命令它就拖着笔移动。forward(100) 往前走 100 像素right(90) 向右转 90 度就这么朴素。这种“给指令看结果”的模式天然适合理解程序执行的顺序和状态变化。很多人一上来就背 API 列表效果其实不好。我更推荐你先记住三个问题海龟现在在哪海龟面朝哪个方向要不要落笔只要把这三个状态想清楚turtle 里九成命令都能推出来。比如你想让海龟画一条从屏幕左上角到右下角的线第一件事绝对不是找画线函数而是先把海龟抬起来、移过去、定好方向、再落笔画线。1.2 画布坐标系一张有原点的无限方格纸turtle 的窗口默认是横向 800 像素、纵向 600 像素不同环境可能有差异坐标原点在画布正中心水平向右是 x 轴正方向垂直向上是 y 轴正方向单位是像素。也就是说左上角坐标是 (-400, 300)右下角是 (400, -300)正中心是 (0, 0)。这个坐标系和数学里的平面直角坐标系几乎一样唯一的区别是 y 轴方向没有“反转”往上就是正的这比很多图形库亲民。绘图时常用的思路是先 penup() 抬笔goto(x, y) 移动到目标点再 pendown() 落笔开始画这样就不会在移动过程中留下痕迹。初学阶段最容易犯的错就是忘了抬笔结果画出一条贯穿整个窗口的对角线。1.3 画笔的四个核心状态画图之前建议先把画笔状态调整到自己想要的样子。我每次写新实例都会先做三件事调速度、调颜色、调笔宽免得画到一半才发现线太细看不清。位置通过 goto(x, y) 控制配合 penup()/pendown() 决定移动时是否留痕。朝向初始朝向右0 度left(90) 会向上转right(90) 会向下转。setheading() 可以直接指定绝对角度90 度朝上、180 度朝左、270 度朝下。颜色与笔宽color(red) 设置线条颜色pensize(3) 设置画笔粗细。想用 RGB 方式调色先执行 colormode(255)再用 color(200, 50, 50) 这类写法。速度speed(0) 是最高速speed(1) 最慢speed(6) 是默认。动画演示的时候故意调慢正式出图的时候果断 speed(0)。顺带提一个新手必踩的坑程序运行完窗口常常一闪而过。解决办法是在代码最后加 turtle.done() 或者 turtle.exitonclick()前者保持窗口打开后者是点击窗口才关闭。“画完了窗口马上消失”几乎是 turtle 新手遇到的第一道坎一定要记得收尾。1.4 每个实例的公共初始化代码后续所有实例我都会先跑这一段公共初始化import turtle t turtle.Turtle() t.speed(0) t.pensize(2) turtle.delay(0) turtle.colormode(255) turtle.setup(width800, height600)turtle.delay(0) 会让每一条绘图指令之间的刷新间隔变为 0配合 speed(0) 之后图形基本是瞬间画完的。setup 设置窗口尺寸避免小窗显示不下。要注意 delay 和 speed 是两套机制speed 控制海龟移动快慢的等级delay 控制每步动画的毫秒间隔两者都调成最快才不会有明显的拖拽感。2. 简单几何实例循环、变量与图形的第一层关系2.1 正方形螺旋一条循环语句里的数学画正方形很简单循环四次 forward right(90) 就行。但正方形螺旋不一样每一圈的边长都在变大它把一个非常核心的数学思想摆到了你面前通过循环变量不断更新绘图参数。import turtle t turtle.Turtle() t.speed(0) turtle.delay(0) for i in range(60): t.forward(5 i * 4) t.right(90) turtle.done()这个例子的关键在 forward(5 i * 4)边长从 5 开始每多循环一次就增加 4 像素。start 值 5 决定初始边长step 值 4 决定边长增速。如果 step 太小螺旋圈与圈之间会贴得很近看起来像一整块实心方块如果 step 太大螺旋又会有明显的断档感不太像连续的曲线。我建议你改参数前先做一个简单预测step 从 4 改成 10画出来的螺旋每圈间隙会变大图形整体也会比较松散。这种“改参数前先猜结果再运行验证”的习惯比单纯抄代码有用得多。2.2 旋转风车角度差决定图案密度同样是循环画线把“边长递增”换成“每次转不同角度”得到的就是风车效果。这里不需要落笔移动两次直接 forward 到终点再原路退回来即可。import turtle t turtle.Turtle() t.speed(0) turtle.delay(0) turtle.colormode(255) colors [red, orange, yellow, green, cyan, blue] for i in range(30): t.setheading(i * 12) t.color(colors[i % len(colors)]) t.forward(160) t.backward(160) turtle.done()每次绘图前用 setheading(i * 12) 强制设置绝对角度相当于把每一根线条都视为“从原点向某个方向画一条半径”。30 根线每根间隔 12 度刚好绕满一圈。如果把 12 改成 15线的数量变成 24 根改成 13角度不再整除 360第二圈会和第一圈错开最终形成更复杂的星芒图案。这个实例很适合用来理解“角度步长”这个概念。数学上 360 度乘以重复次数如果不是 360 的整数倍图案就会产生旋转偏移这在后面做五角星和多边形的时候还会遇到。2.3 五角星转向角到底怎么算画五角星几乎每个人都想当然地写出 right(72)因为 360 / 5 72结果画出来是个正五边形。五角星的正确转角是 144 度这个数从哪来五角星每个外顶点处两条边之间的内角是 36 度海龟沿着边走到顶点后需要右转的角度等于 180 - 36 144 度。import turtle t turtle.Turtle() t.speed(0) turtle.delay(0) for _ in range(5): t.forward(200) t.right(144) turtle.done()这里的规律可以推广要画一个角数为 n 的星形先算出星形外角对应的内角再用 180 减去它。更重要的是理解“转向角是外角不是中心角”这一事实。海龟画多边形是把外角依次转完外角和恒等于 360 度所以正 n 边形每次转 360 / n。而带尖角的星形每次跨过的是一条更长的弧转角要按星形特有的角度计算直接用 360 / n 会得到完全不同的图形。2.4 一个小表记住常见转向角对应的图形真正动手画的时候不需要每次都推公式但至少要有一个大概的直觉。转向角图形效果说明90 度正方形、矩形、方形螺旋最简单容易验证循环变量72 度正五边形360 / 560 度正六边形、蜂窝状结构适合做组合拼接144 度五角星注意不是 72120 度等边三角形、六角雪花局部转向角大于 90 会产生尖锐折返整数倍错开的角度星芒、花形、退化成线循环次数与 360 不成整数比时这张表可以帮助快速判断一个图形到底该用哪个角度。尤其在排查“为什么画出来不是我想象的形状”时先检查转角大概率问题就出在这里。3. 分形实例三行递归画出科赫雪花3.1 递归不止是“自己调自己”很多初学者看到递归就头疼其实递归只需要抓住两件事基例和递归步。基例就是“最简单、不能再拆的情况”递归步则是“把大问题拆成小问题的规则”。在 turtle 里面这两件事都非常直观。拿画一条直线来说。如果递归深度是 0直接 forward 画直线这就是基例。如果深度大于 0就把这条直线拆成更小的单元先画一部分转向再画另一部分在中间插入折线结构这样就把原来的一条直线替换成了更复杂的图案。分形之所以迷人是因为同样的替换规则在每一层递归里都会重新执行一次图案的细节会呈指数级增长。3.2 科赫雪花把直线的一小段改成凸起的折线科赫雪花的生成规则是把一条线段三等分中间那段去掉换成一个没有底边的等边三角形形成向外凸起的尖角。然后把这条更复杂的折线再按相同规则细分反复执行。import turtle def koch(t, length, depth): if depth 0: t.forward(length) return length length / 3 koch(t, length, depth - 1) t.left(60) koch(t, length, depth - 1) t.right(120) koch(t, length, depth - 1) t.left(60) koch(t, length, depth - 1) t turtle.Turtle() t.speed(0) turtle.delay(0) t.penup() t.goto(-200, 100) t.pendown() for _ in range(3): koch(t, 400, 3) t.right(120) turtle.done()第一次调用 koch(t, 400, 3)length 变成 400 / 3然后进入四段递归。每一段又继续把长度除以 3 再调用。所以多层递归之后海龟实际前进的最小段长度是 400 / (3^depth)depth 为 3 时大约是 14.8 像素。理论上深度越大雪花边缘越精细但速度也会指数级下降。depth 到 6 的时候单条边会被拆成 4^6 4096 段整个雪花超过 12000 次移动指令跑起来明显变长。实战中画雪花depth 取 4 到 5 最合适画面既细腻又不太慢。3.3 分形树树枝的角度与收缩比分形树的思路和科赫雪花类似但方向不同它不是把直线拆成折线而是从树干顶端分出两个子树枝每个子树枝又继续分叉。import turtle def tree(t, length, depth): if depth 0: return t.forward(length) t.left(30) tree(t, length * 0.7, depth - 1) t.right(60) tree(t, length * 0.7, depth - 1) t.left(30) t.backward(length) t turtle.Turtle() t.speed(0) turtle.delay(0) t.penup() t.goto(0, -250) t.pendown() t.left(90) tree(t, 120, 6) turtle.done()tree 函数的核心秘密在最后的 backward(length)。每画完一层递归海龟必须原路退回树干分叉点才能继续画另一侧的树枝。这个“先前进画树枝再后退回溯”的模式是大多数分形树代码的关键。如果忘了后退海龟的状态就乱了画出来的图案会像一团乱麻。两个参数值得特别把玩角度和收缩比。角度 30 度决定两棵子树之间的夹角是 60 度角度越大树冠越展开收缩比 0.7 决定每一层树枝长度递减的速度收缩比接近 1 的时候树冠非常稠密接近 0.5 的时候树形稀疏、瘦长。我给初学者的建议是先固定收缩比 0.7然后尝试角度 20、30、45 三个值观察树冠形态的变化会发现 45 度的树更接近一把打开的伞20 度的树更趋近圆锥形。3.4 谢尔宾斯基三角形三个小三角形拼出一个大镂空谢尔宾斯基三角形是另一个非常炸裂的递归实例一个大等边三角形挖掉中心的倒三角剩下三个角上的小三角形然后每个小三角形再继续同样的挖空操作。import turtle def sierpinski(t, x, y, size, depth): if depth 0: t.penup() t.goto(x, y) t.pendown() t.begin_fill() for _ in range(3): t.forward(size) t.left(120) t.end_fill() return half size / 2 h half * (3 ** 0.5) / 2 sierpinski(t, x, y, half, depth - 1) sierpinski(t, x half, y, half, depth - 1) sierpinski(t, x half / 2, y h, half, depth - 1) t turtle.Turtle() t.speed(0) turtle.delay(0) t.color(black) sierpinski(t, -200, -150, 400, 4) turtle.done()这里没有用常规的“先把大三角画出来再挖空”的思路而是直接递归三个小三角的绘制。坐标计算要稍微推一下如果大三角形的左下角是 (x, y)边长 size那么左边子三角形的左下角还是 (x, y)右边子三角形的左下角是 (x size/2, y)上方子三角形的左下角是 (x size/4, y size√3/4)。每次递归把 size 减半三块子区域同时更新到 depth 为 0 时画出实心三角。填充的时候要注意 begin_fill 和 end_fill 必须成对出现而且 begin_fill 之前最好 penup 到多边形的起点否则海龟走过了一段隐藏路径填充区域会多出一块不该有的部分。depth4 会画出 4^4 256 个小三角形已经非常有分形的味道了。4. 综合实例太极、彩虹与星空场景4.1 太极图的圆盘叠加法太极图看起来像是一笔画挑战但用 turtle 画最稳的方法不是画一条连续 S 形曲线而是用圆盘叠加。简单说就是先画一个黑色大圆再用白色半圆盖住左边一半接着在右上补一个白圆在左下补一个黑圆最后点两个眼睛。这个方法思路直白完全不依赖复杂的海龟转向。import turtle t turtle.Turtle() t.speed(0) turtle.delay(0) R 100 # 画黑色大圆 t.color(black, black) t.penup() t.goto(0, -R) t.setheading(0) t.pendown() t.begin_fill() t.circle(R) t.end_fill() # 用白色半圆覆盖左半部分 t.color(black, white) t.penup() t.goto(0, -R) t.setheading(90) t.pendown() t.begin_fill() t.circle(-R, 180) t.end_fill() # 在右上角覆盖一个白色小圆 t.penup() t.goto(0, R) t.setheading(0) t.pendown() t.begin_fill() t.circle(-R / 2, 180) t.end_fill() # 在左下角补一个黑色小圆 t.color(black, black) t.penup() t.goto(0, -R) t.setheading(0) t.pendown() t.begin_fill() t.circle(R / 2, 180) t.end_fill() # 画两个鱼眼 t.penup() t.goto(0, R / 2) t.dot(R / 6, black) t.goto(0, -R / 2) t.dot(R / 6, white) turtle.done()这里最需要注意 circle 参数的正负号circle(radius, angle) 中 radius 为正时海龟向逆时针方向画圆radius 为负时向顺时针方向画圆。从同一个起点、同一个朝向出发circle(100, 180) 画的是右半圆circle(-100, 180) 画的是左半圆。我反复强调这一点是因为程序中三个半圆的方向很容易写反一旦写反得到的图案就变成了镜像版太极转 180 度倒是能用但初学者很容易被绕晕。4.2 彩虹与同心圆环彩虹实例最直观的做法是画一组同心圆每画一个整圆把半径增大一定的量同时换一种颜色。由于每根圆环之间是紧密相邻的加大 pensize 之后视觉上就是一条条彩带。import turtle t turtle.Turtle() t.speed(0) turtle.delay(0) turtle.colormode(255) colors [red, orange, yellow, green, cyan, blue, purple] t.pensize(15) for i, c in enumerate(colors): t.color(c) t.penup() t.goto(0, -(80 i * 25)) # 让圆心保持在原点 t.pendown() t.circle(80 i * 25) turtle.done()关键点在于 t.circle(radius) 默认把圆心放在海龟左侧 radius 处。如果海龟停在 (0, 0) 直接画圆圆心会跑到 (0, -radius)根本不是以原点为中心。所以每次要先把海龟移到 (0, -radius)朝向默认的 0 度再画圆这样圆心才会回到原点。这是一个非常容易忽略的细节也是很多新手画同心圆画成一堆乱圆的根本原因。如果想画半圆彩虹而不是整圈可以给 circle 加第二个参数t.circle(radius, 180)。这时候注意起点位置同样决定了半圆的方向想画出向上拱的彩虹弧起点应该放在画面下方比如 (0, -150) 朝上画。我在实际教学中发现整圆彩虹适合作为“学习圆环绘制”的入门半圆彩虹则适合做“理解起点和朝向关系”的进阶练习。4.3 星空场景随机数与画笔的配合turtle 配合 random 模块能做出很有氛围的星空图。思路很简单在画布范围内随机取坐标随机设置大小和亮度用 dot() 画点再叠加一个黄色圆作为月亮。import turtle import random t turtle.Turtle() t.speed(0) turtle.delay(0) turtle.bgcolor(black) turtle.colormode(255) t.penup() for _ in range(150): x random.randint(-380, 380) y random.randint(-280, 280) size random.randint(1, 4) brightness random.randint(180, 255) t.goto(x, y) t.dot(size, (brightness, brightness, random.randint(100, 255))) # 画月亮 t.goto(-200, 180) t.color(yellow, yellow) t.begin_fill() t.circle(40) t.end_fill() turtle.done()dot 和 circle 的区别值得单独说dot(size, color) 画的是一个独立的点不需要落笔、没有路径计算效率远超 circle画几百个星星毫无压力circle 则是真正意义上的绘制轮廓并填充适合画月亮这种有边界感的大物体。散点类效果一律用 dot构图、背景、装饰才用 circle。星空这类实例适合反复改参数把星星数量从 150 改成 500画面会从清冷变成浓密把 brightness 门槛从 180 提高到 230星星会更暗更柔。最重要的还是看到随机数参与绘图后每次运行都会得到不同的画面。4.4 给所有实例加上平滑移动的小细节综合实例经常会遇到“海龟从一个点飞到另一个点”的情况这时候默认的直线移动会留下一条难看的斜线。我的习惯是所有长距离移动都先 penup到达目标点后再 pendown。书写代码时把“抬笔-移动-落笔”当成一个固定动作来写t.penup() t.goto(x, y) t.pendown()这个三连在复杂图形里非常提升画面整洁度。此外想让构图对称美观可以在 setup 阶段就把主图形规划在窗口中心区域比如太极图半径 100 放在边长 800 的窗口里就显得比较空半径 180 左右会更饱满。动手画之前看一眼坐标范围能省掉很多后期调整的麻烦。5. 排序过程可视化turtle 的动力学玩法5.1 从静态到动态tracer 与 update 的妙用前面所有实例都是画完一张静态图要么看结果要么保存图片。但 turtle 真正的隐藏能力在于动画你可以一边修改数据一边把中间状态画出来。很多人不知道 turtle.tracer(0) 这个开关的用途。tracer(0) 的意思是关闭海龟逐帧刷新所有绘图指令不会立刻显示到窗口里直到你调用 update()屏幕上才会一次性更新当前帧。这相当于一个离屏渲染机制。如果不关闭 tracer每画一条线窗口就刷新一次排序可视化那几百根柱子会闪到怀疑人生关闭之后每一帧稳定更新一次动画非常干净。5.2 冒泡排序的可视化实现用 turtle 演示冒泡排序本质上就是“每次数据交换后重画一遍所有柱形”。代码不长但把排序算法、列表交换、绘图函数三件事结合到了一起非常有挑战性。import turtle import random import time turtle.setup(width800, height600) turtle.tracer(0) turtle.delay(0) data [random.randint(30, 200) for _ in range(20)] t turtle.Turtle() t.speed(0) t.penup() def draw_bars(): turtle.clear() for i, h in enumerate(data): x i * 20 - 190 y -150 t.goto(x, y) t.setheading(90) t.pendown() t.begin_fill() t.forward(h) t.right(90) t.forward(12) t.right(90) t.forward(h) t.right(90) t.forward(12) t.end_fill() t.penup() turtle.update() time.sleep(0.05) draw_bars() for i in range(len(data) - 1): for j in range(len(data) - i - 1): if data[j] data[j 1]: data[j], data[j 1] data[j 1], data[j] draw_bars() turtle.done()绘制柱形时我用了“从底部向上画高然后向右转 90 度画宽再向下画回底部”的方式。begin_fill 会自动把最后一点连回起点形成闭合矩形所以不用手动画第四个边。开始时把海龟定位到 (x, y)也就是柱形左下角setheading(90) 让它朝上然后 forward 画高度。每一步数据交换后调用 draw_bars 重画就能看到最高的柱子在慢慢“冒泡”到右侧。这里要注意 time.sleep 不能省也不能太长。sleep 0.05 秒在 20 根柱子、约 190 次内层循环下总时长大概 10 秒节奏刚好如果数据量加到 50sleep 就要缩到 0.02 秒否则等待时间让人很难受。tracer(0) 配合 sleep才能既看清过程又不卡顿。5.3 提速与效果平衡的几个小经验排序可视化最大的坑是“绘制速度远慢于算法速度”。算法本身瞬间就能跑完但每轮都要重画 20 根柱子如果你在每轮循环里都调用一次 draw_bars动画会显得非常快难以观察。我的处理方法是先跑一遍逻辑数一下总共有多少帧再反推 sleep 值。比如 20 个数据冒泡排序总共要比较约 190 次我想让动画在 10 秒左右结束就设置 sleep 为 10 / 190 ≈ 0.05 秒实测效果非常舒适。另外排行榜式的条形图也可以换一种画法只重画发生交换的两根柱子而不是清空重画全部。这样做代码会复杂一些但性能会好很多适合数据量上百的场景。不过作为学习实例清空重画的好处是逻辑直观、不容易出错等你看懂了再优化也不迟。排序可视化这个玩法对我个人来说是 turtle 从“画图工具”升级为“教学工具”的分水岭。在此之前turtle 只是不断输出静态结果在此之后你会发现它能把任何可以用列表表示的数据变化过程转化成生动的动画。我把同样的模式稍加改造还做过选择排序和插入排序的可视化只需要替换排序算法里的比较交换部分绘图函数完全不用动。最后再分享一个小技巧分形和动画类实例特别适合把关键参数做成变量比如递归深度、分支角度、sleep 时间。我在调试科赫雪花时一般先用 depth2 快速验证逻辑确认没问题再逐步提高到 5。跑排序动画时也是先用 10 个数据把流程跑通再上真实数据量。这个“小规模验证再放大参数”的习惯能帮你避开很多 turtle 绘图里最让人抓狂的问题。

相关新闻

俯冲带后撤与弧后扩张:从板片回卷到海沟迁移的完整动力学链条

俯冲带后撤与弧后扩张:从板片回卷到海沟迁移的完整动力学链条

“俯冲带的后撤”和“弧后扩张”这两个词放在一起读,实际上是在追一条完整的动力学链条:大洋板片为什么会在俯冲过程中整体向后“缩”,缩出来的空间又如何被上覆板块的伸展裂解掉,最终长出新的大洋地壳。大多数人第一次看俯冲示意…

2026/10/13 21:53:42 阅读更多 →
Teamcenter 2007 详细安装指南:从环境准备到 tcserver 启动的完整避坑手册

Teamcenter 2007 详细安装指南:从环境准备到 tcserver 启动的完整避坑手册

简介:这份资源是Teamcenter 2007的详细安装文档,面向PLM初学者、实施工程师及需要搭建测试环境的技术人员,重点解决早期版本部署中数据库配置环节的入门难题。压缩包内仅含1个doc文档,体积约3MB,以图文步骤形式记录了O…

2026/10/13 21:53:42 阅读更多 →
Hebbian规则:SNN学习的底层语法与工程实践指南

Hebbian规则:SNN学习的底层语法与工程实践指南

1. 为什么Hebbian规则不是“神经网络入门知识”,而是SNN真正的呼吸节奏?在多数人刚接触脉冲神经网络(SNN)时,常被LIF模型、突触延迟、发放阈值这些“硬件感”十足的概念吸引——仿佛SNN是一台精密的生物电路板&#xf…

2026/10/13 21:53:42 阅读更多 →

最新新闻

2026 PCSX2 开源PS2模拟器:2500款老游戏在PC上稳跑

2026 PCSX2 开源PS2模拟器:2500款老游戏在PC上稳跑

2026 PCSX2 开源PS2模拟器:2500款老游戏在PC上稳跑 【免费下载链接】pcsx2 PCSX2 - The Playstation 2 Emulator 项目地址: https://gitcode.com/GitHub_Trending/pc/pcsx2 把BIOS文件丢进一个文件夹,拖入一张光盘镜像,PS2的开机动画就…

2026/10/14 2:46:28 阅读更多 →
CDL网表与LVS实战:从语法到版图提取的避坑指南

CDL网表与LVS实战:从语法到版图提取的避坑指南

简介:电路描述语言(CDL)教学演示文稿围绕C17基准电路,系统讲解如何用该语言描述电路结构、连接关系和逻辑功能,面向数字电路课程学习者、EDA入门者及需要完成电路描述实验报告的学生。内容先梳理语法规则,将…

2026/10/14 2:46:28 阅读更多 →
仓颉标准库 std.argopt 命令行参数解析指南:parseArguments 与 ArgumentSpec 实战详解

仓颉标准库 std.argopt 命令行参数解析指南:parseArguments 与 ArgumentSpec 实战详解

人工智能AI 技能文档开发工具 【免费下载链接】DocAgent 项目地址: https://gitcode.com/Cangjie-SIG/DocAgent 点击查看 免费下载 std.argopt 是仓颉(Cangjie)标准库中负责命令行参数解析的包,它提供从命令行参数字符串中解析出…

2026/10/14 2:46:28 阅读更多 →
LinkSwift:如何快速简单地完成网盘直链解析,一键拿到 8 大网盘直链

LinkSwift:如何快速简单地完成网盘直链解析,一键拿到 8 大网盘直链

LinkSwift:如何快速简单地完成网盘直链解析,一键拿到 8 大网盘直链 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘…

2026/10/14 2:46:28 阅读更多 →
Spring Data JPA实战:实体映射、事务控制与N+1优化

Spring Data JPA实战:实体映射、事务控制与N+1优化

1. 项目概述:为什么一个“JPA实战Demo”值得花三小时重写五遍你是不是也经历过这样的场景:刚学完JPA的基础注解——Entity、Id、GeneratedValue,信心满满地新建一个User类,跑起来却报org.hibernate.MappingException: Unknown ent…

2026/10/14 2:46:28 阅读更多 →
Vue 3 轻量级数据透视表组件:支持拖拽+聚合+Excel导出

Vue 3 轻量级数据透视表组件:支持拖拽+聚合+Excel导出

简介:这是一份面向Vue.js中高级开发者的数据透视表功能实现组件包,专为需要在Web应用中快速集成交互式聚合分析表格的前端工程师设计。资源提供两个核心Vue组件:支持拖放配置行列的完整数据透视表,以及轻量级仅聚合功能的PivotTab…

2026/10/14 2:45:28 阅读更多 →

日新闻

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/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →