Python入门首选:用turtle小海龟画图,一小时掌握编程基础语法

发布时间:2026/9/6 21:00:32
Python入门首选:用turtle小海龟画图,一小时掌握编程基础语法 简介这份Python基础课程PPT以“小海龟画图基础”为主题为编程零基础或入门阶段的学习者提供系统讲解。教程围绕Python内置turtle模块展开从认识虚拟小海龟与图形界面编程出发逐步演示直线绘制、通过循环实现等边三角形、color()颜色设置及常见颜色英文名等核心操作并给出彩色三角形综合案例直观展示颜色与循环的配合。资源整体仅1个pptx文件压缩包约2.64MB轻量精简无需额外安装任何依赖打开即可用于课堂演示或个人跟练。目前该资源已有369人浏览/学习适合教师备课、学生自学或程序设计启蒙场景。除基础绘图外还提炼了画笔粗细、隐藏海龟、清屏、提笔落笔等进阶技巧并附实践建议引导读者从三角形逐步拓展到矩形、多边形等图形创作帮助建立坐标移动与角度转向的空间感为后续Python编程打下扎实基础。 开门见山说一件事如果你正在学 Python又觉得 print(Hello World) 太单调那我强烈建议你把小海龟画图作为入门第一课。小海龟是 Python 内置的 turtle 模块它不像爬虫、量化交易那么“高深”但恰恰是它能让零基础的人在半小时内画出东西、产生正反馈顺手把变量、循环、函数、模块导入、坐标、角度这些基础概念全过一遍。这篇文章我会把这门课的设计思路、环境搭建、核心命令、典型案例和踩坑排查完整拆给你看既适合自学的初学者也适合要给学生讲第一堂 Python 课的老师。1. 小海龟画图这门课到底在解决什么问题1.1 turtle 是什么为什么会成为入门首选很多刚接触编程的人会有一个疑问我已经能 print 出一行字了然后呢print 的反馈是文字是抽象的你敲 20 行代码屏幕上还是那一行行字符很难有“我在创造东西”的感觉。turtle 不一样。它的设计思路非常简单屏幕中间有一只小海龟你指挥它往前走、往左转、往右转它走过的路径就会留下一条线。你写代码立刻就能看到图形反馈像一个实时的“画笔机器人”。这套思想其实来自上世纪 60 年代的 Logo 语言专门为儿童编程教育设计。海龟绘图不是为了画出一张多复杂的图而是让初学者通过“指挥一个角色动起来”理解代码是逐行执行的、程序是可以被循环和函数控制的、变量是可以改变状态的。这些恰恰是编程里最核心的抽象概念。现在的 Python turtle 模块就是标准库里的一个实现不需要安装任何第三方包装了 Python 就能跑。1.2 这门课覆盖了哪些核心知识点别小看一个画图课我在实际教学中数过它几乎能把 Python 基础语法的半壁江山串起来。首先是模块导入import turtle本身就是“装插件”这个概念的第一次落地然后是顺序执行你写forward(100)和right(90)它就会老老实实按顺序走然后是循环画正方形只需要for i in range(4)四行代码这是“模式识别”和“重复抽象”的最好启蒙再往后是函数你可以把“画一个正方形”封装成def square()下次调用一次就画一个这是模块化思维的第一次建立。还能延伸到变量和数据类型比如t.pensize(3)里的 3 是个整数t.pencolor(red)里的 red 是个字符串角度是浮点数颜色还可以用 RGB 元组表示。你在不知不觉中就把这些概念摸了一遍。更重要的是turtle 有极强的“容错可视化”——代码错了画面立刻给你颜色看画歪了、画飞了你会很直观地感觉到“哦角度算错了”或者“循环次数多了一次”而不是面对一堆报错发呆。1.3 为什么不用“Hello World”直接开场也不是说 Hello World 不好而是它作为“第一课”的刺激感太弱了。print(Hello World)的成就感能维持 3 分钟之后你再去讲变量、讲列表很多初学者会问“学这个干嘛”。turtle 给了你一个持续的目标——我想画一个五角星、我想画一朵花、我想画出一朵螺旋。为了达到这个目标你必须去学使用循环、控制角度、设置颜色所有知识点都有了即时的应用场景。所以这门课的本质不是“画画课”而是“用创造力驱动的语法入门课”。我在课程里的定位很明确第一节课结束学生要能独立画出至少三个由循环控制的图形并且理解每一行代码在“指挥海龟做什么”。这种“我能造东西了”的正反馈才是让新手能坚持学下去的关键燃料。2. 环境准备先把“画板”搭起来2.1 Python 安装的关键细节要跑 turtle得先有一个能用的 Python 环境。很多初学者卡在环境配置这一步其实大部分问题都能避免。第一去官网下载 Python 时要求是 3.10 以上就行太老的版本对初学者不友好。第二也是最容易犯错的点Windows 安装时那个Add Python to PATH勾选框一定一定要勾上。不勾的话你在命令行里输入python会得到 “不是内部或外部命令”的提示然后开始怀疑人生。macOS 用户注意一点系统自带的 Python 是 2.x 版本而且通常不会直接提供python3命令的软链建议直接从官网下载最新稳定版并按向导安装。Linux 用户则可以用包管理器比如 Ubuntu 系的sudo apt install python3 python3-tk注意这个python3-tk是必须的turtle 依赖 Tk 图形库只装 Python 不装 Tk在后面导入 turtle 时会报No module named tkinter的错误。2.2 编辑器选哪个IDLE、VSCode 还是 PyCharm第一节课我不建议在编辑器上折腾太久。最稳的方案是直接用 Python 自带的 IDLE它和 Python 一起安装不需要任何配置打开后新建文件、写代码、按 F5 就能运行turtle 图形窗口会正常弹出来。对于 1~2 个小时的入门课IDLE 完全够用还省掉了“解释器路径选择”这种让新手崩溃的配置环节。如果后续准备往数据分析、爬虫方向走早一点接触 VSCode 也不错。安装 VSCode 后用扩展市场装 Python 扩展然后在左下角选择一个解释器路径指向你刚装的 Python 就行。PyCharm 也是很多课程推荐的但对初学 turtle 来说启动慢、配置相对复杂第一节课反而容易被环境问题带偏节奏。我的建议优先级IDLE最快上手 VSCode为后续铺路 PyCharm等你要做完整项目再切过去。2.3 验证环境运行第一段绘制代码环境配好后不要急着看教程先跑一段最小代码确认绘图功能正常。新建一个文件输入import turtle t turtle.Turtle() t.forward(100) turtle.done()运行后你应该能看到一个窗口里面有只小海龟向右移动 100 像素并留下一条黑线。这里有两个小细节第一窗口能正常弹出说明 Tk 图形库没问题第二代码最后一行写了turtle.done()作用是让窗口保持打开否则有些环境下窗口会一闪而过看起来像“什么都没发生”。确认这一步没问题整个环境就打通了。提示在 IDLE 中运行 turtle 程序时如果窗口没有正常弹出可以试试在文件最后加上turtle.exitonclick()这样点击窗口任意位置才关闭给足了观察时间。3. turtle 核心命令与坐标体系一次讲透3.1 海龟坐标系方向、角度和屏幕边界turtle 使用了我们熟悉的平面直角坐标系屏幕中心是原点(0, 0)x 轴向右为正y 轴向上为正。海龟默认面向右方也就是 0 度方向向上是 90 度向左是 180 度向下是 270 度。理解这个角度模型非常关键因为画任何图形的本质都是“控制方向 控制距离”。很多初学者画五角星失败就是因为角度的计算没搞对。我的一个经验是永远先画一个“方向坐标图”贴在手边——脑海中有这个坐标再用setheading(angle)直接指定朝向比反复left/right累加更不容易出错。setheading(0)朝东setheading(90)朝北这样调试起来非常直观。屏幕默认大小是 800x600 像素超过边界海龟不会报错但会跑到画面外面去注意距离别给太大。3.2 最常用的十个命令速查我把第一节课最常用的命令整理成了一张表配合实际图形去记会比背文档快得多命令作用示例turtle.Turtle()创建一只海龟对象t turtle.Turtle()t.forward(d)向当前方向前进 d 像素t.forward(100)t.backward(d)后退 d 像素t.backward(50)t.right(angle)右转 angle 度t.right(90)t.left(angle)左转 angle 度t.left(45)t.penup()抬笔移动时不画线t.penup()t.pendown()落笔恢复画线t.pendown()t.pensize(w)设置线条宽度t.pensize(3)t.pencolor(color)设置画笔颜色t.pencolor(red)t.speed(s)设置速度0 最快1~10 递增t.speed(5)这些命令按功能可以分成三组移动类、旋转类、属性类。移动和旋转是绘图的核心属性是用来“修边幅”的。开课时我会让学生先玩 10 分钟自由命令随便 forward、left、right把海龟“遛”熟再开始画正规图形。3.3 颜色、填充与画笔属性turtle 里颜色可以用三种方式指定颜色名字符串、十六进制字符串、RGB 元组。最简单的就是直接写red、blue、green、gold这种常用英文名。想要更精确的颜色可以用#FF6600这种十六进制形式。RGB 元组方式需要事先执行turtle.colormode(255)然后才能写t.pencolor((200, 100, 50))这种 0~255 的量。填充是让画面好看的一个重要技术。基本套路先用t.fillcolor(yellow)设填充色再用t.begin_fill()表示“从这里开始记路径”画完闭合图形后调用t.end_fill()颜色就会自动填充进去。注意begin_fill()和end_fill()之间的图形必须是闭合的否则填充效果会很奇怪。这些属性参数本身也是教学素材——整数、字符串、元组就在这里有了真实使用场景。4. 三个经典案例拆解从正方形到彩色螺旋4.1 案例一用循环画一个正方形理解重复代码的抽象很多教材第一次画正方形会写 8 行代码前进、转弯重复四次。但我更建议第一次就用循环import turtle t turtle.Turtle() t.speed(3) for i in range(4): t.forward(100) t.right(90) turtle.done()为什么直接上循环因为两次重复还可以硬写四次重复就已经开始手酸了。range(4)里的 4 对应正方形的四条边循环体里的两行代码就是“画一条边、转一个角”。关键是让学生理解正方形之所以是正方形不是因为出现了四次 forward而是因为“重复四次相同动作”这个结构。理解了这个改成三角形只需要range(3)和right(120)改成五边形是range(5)和right(72)——你会发现所有正多边形的代码结构长一模一样。这里还可以顺带提一个经典公式正 n 边形每次转弯的角度是360 / n。画正六边形就是range(6)right(60)。学生在几分钟内就画出了好几种正多边形那种凭规律“控制机器人”的快感是自己敲 print 体会不到的。我强烈建议这个环节不要跳过它是循环思想落地的最佳时刻。4.2 案例二画彩色螺旋线体验变量和状态的变化正方形画熟之后下一个经典练习是螺旋线。螺旋线的核心规律是步长不断增加转弯角度固定。这就用上了变量import turtle t turtle.Turtle() t.speed(0) colors [red, orange, gold, green, blue, purple] for i in range(36): t.pencolor(colors[i % 6]) t.forward(i * 5) t.right(60) turtle.done()这段代码里有两个特别好的知识点。第一i * 5让步长随循环次数增长海龟画出去的线越拉越长自然形成螺旋第二i % 6是对 6 取余让颜色从列表里循环取用这个取模技巧在后续很多编程场景里都会反复出现。speed(0)是最快速度免得等得太久。跑完这个程序学生会看到一条漂亮的彩色螺旋线。这时候我会追问一句如果你把right(60)改成right(61)会发生什么答案是一条几乎重合但更“膨胀”的螺旋这种细微参数引起的视觉变化会让学生真切感受到“程序里每个数字都有意义”。这种“改参数看效果”的探索过程比单纯背语法要深刻得多。4.3 案例三画一朵简化的花把圆弧和重复结合起来最后一个案例把圆和循环结合在一起画一朵有花瓣的花。单个花瓣其实是由两段圆弧拼成的海龟先画一个半圆的凸起转向后再画另一个半圆的凸起。代码如下import turtle t turtle.Turtle() t.speed(8) t.pensize(2) t.pencolor(hotpink) for petal in range(8): for arc in range(2): t.circle(60, 90) t.right(90) t.right(45) turtle.done()这个案例有两个难点。难点一是t.circle(radius, extent)这个命令60 是圆弧半径90 是画多长角度的弧换句话说“海龟沿着半径为 60 的圆走了 90 度”。难点二是嵌套循环外层循环控制画 8 片花瓣内层循环控制每片花瓣由两个弧组成。如果学生的逻辑还没跟上可以先画单片花瓣确认没问题了再加外层循环。运行结果是一朵粉色的花绕中心旋转排列效果非常出片完全能当朋友圈素材。画完这朵花第一节课的核心目标已经全部达成模块导入、顺序执行、变量、for 循环、range、颜色、列表取值、注释和观察参数变化全都走过一遍。学生带走的不只是几张图片而是一套“读代码—改参数—看结果—猜规律”的探索方法。5. 常见问题与排查技巧实录5.1 turtle 窗口一闪而过怎么办最常见的问题就是运行后窗口闪一下就没影了学生跑来问“我的代码是不是写错了”。其实代码大概率没问题是程序执行完窗口被立刻关闭了。解决办法是在代码末尾加一行turtle.done()或者turtle.exitonclick()。前者让窗口保持打开直到手动关闭后者则是“点击窗口才关闭”对新手更友好。IDLE 环境下turtle.done()偶尔会有窗口无响应的问题直接关掉重开就行。5.2 报错 No module named turtle这个报错分两种情况。一种是你给文件起名的时候一不小心叫了turtle.py然后程序运行时会先找到你自己这个文件把自己当成 turtle 模块导入结果里面没有画图方法就报错了。改个名字就行比如draw_star.py。另一种是系统缺少 Tk 图形库这个最常见于 Linux 环境解决方式是用包管理器安装python3-tk。Windows 和 macOS 用户很少遇到第二个原因。5.3 海龟画图没反应或者线条太慢如果窗口正常弹出但海龟画得跟树懒一样检查两件事。第一是不是忘记写t.speed()默认速度其实还行但当你画螺旋线、嵌套循环时会明显慢设成speed(0)会快很多。第二是不是用了t.tracer(0)忘了刷新这个函数是用来关闭自动刷新画面的用它之前要先t.update()才会显示最新图形初学者容易在这里卡壳。我的建议是第一节课暂时别用 tracer等掌握了基础刷新机制再优化。5.4 画出的图形不对称或颜色显示不对图形不对称九成是角度算错。常见错误是把right(90)写成left(90)或把360 / n的商当整数用了。画正多边形前先在纸上画个草图标出转向角再写代码能省一半调试时间。颜色显示不对大部分情况是颜色名拼写错误或用了中文引号pencolor(red)必须是英文双引号包裹的合法色名想用更丰富的颜色建议用 RGB 元组配合colormode(255)比如t.pencolor((255, 128, 0))报错时注意看提示具体写在哪个字符上通常一眼就能定位。5.5 想保存画好的图怎么做turtle 窗口本身没有“另存为图片”按钮但你有两个办法。最简单的就是直接截图适合快速分享。如果想把画好的图保存成矢量格式可以在绘图结束时加两行代码import turtle # 这里放你的绘图代码 t turtle.Turtle() t.forward(100) canvas t.getscreen().getcanvas() canvas.postscript(fileoutput.eps)这样会生成一个.eps矢量文件可以用支持该格式的软件打开或者用在线工具转成 PNG。需要注意 postscript 的保存语句必须放在绘图完成后、窗口关闭前并且对复杂彩色填充图形的兼容性一般如果遇到导出异常截图仍然是保底方案。6. 课后的延伸方向与我的教学体会第一节课上完学生通常还意犹未尽这时候你可以引导一些有趣的扩展。比如画五角星时可以考虑用两次循环加一次抬笔落笔实现“虚线五角星”也可以把案例二里的固定角度改为90 - i这种动态角度生成更复杂的螺旋还可以把多个图形封装成函数做一个“图形生成器菜单”用 input 接收用户选择。每多一个扩展基础语法的熟练度就高一分。我个人带过很多轮 Python 入门课最大的体会是用 turtle 教基础语法学生忘词率明显比干讲语法低。因为画面给了大脑一个“记忆锚点”比如一想到right(120)就想到那个尖尖的三角形角一想到circle(60, 90)就想到花瓣的弧线。所以如果你正打算自学 Python或者准备给别人讲第一课与其从枯燥的概念开始不如直接打开编辑器让海龟先跑起来。画歪了、飞出去了都没关系改参数、看现象、琢磨规律这个过程本身就是编程入门最该有的样子。本文还有配套的精品资源点击获取