查看全课大纲(第 13 / 51 节)
- 1.为什么人人都该学点编程?
- 2.计算机与程序设计:你的电脑到底在“想”什么?
- 3.Python 这门语言,到底有什么魔力?
- 4.Python 开发环境配置:如何拥有你的第一个“编程工具箱”?
- 5.如何安装一个更强大的代码编辑器?
- 6.汇率兑换1.0:你的第一个“钱生钱”小程序
- 7.你的第一行代码,藏着哪些秘密?
- 8.汇率兑换2.0(上):让程序看懂“CNY”和“USD”
- 9.汇率兑换程序,如何让它“聪明”地判断币种?
- 10.汇率兑换程序能一直运行,直到我喊停吗?
- 11.汇率兑换4.0:如何把“算钱”功能打包成积木?
- 12.汇率兑换5.0:给你的程序穿上“结构化”的西装
- 13.怎么用 Python 画一个会动的五角星?
- 14.如何让程序自动画出不同大小的五角星?
- 15.函数自己调用自己,会发生什么?
- 16.用递归画出神奇的分形树
- 17.Python 怎么计算你一天躺着不动能消耗多少热量?
- 18.如何让程序“活”起来,持续为你服务?
- 19.如何让 BMR 计算器更“聪明”?
- 20.当程序遇到“不按套路出牌”的用户怎么办?
- 21.怎么用 Python 模拟一个“滚雪球”式的存钱计划?
- 22.如何用列表记录每一周的存款?
- 23.如何让程序自己数数?—— 用 for 循环解放你的双手
- 24.52周存钱挑战4.0:你的存款计算器能有多灵活?
- 25.52周存钱挑战:怎么根据日期自动查存款?
- 26.Python 怎么判断一年中的第几天?
- 27.列表 vs 元组:哪个更适合存储月份天数?
- 28.用集合给月份分个队,换个思路算天数
- 29.把月份和天数“锁”在一起:用字典给数据配个对
- 30.Python 怎么判断密码强弱?
- 31.Python 怎么给密码设置“防沉迷”系统?
- 32.Python 怎么把密码保存到文件里?
- 33.Python 怎么读取文件里的密码?
- 34.Python 怎么把密码检查工具“打包”起来?
- 35.Python 怎么把文件操作也“打包”起来?
- 36.计算机怎么“扔骰子”?——用Python模拟随机事件
- 37.如何用 Python 模拟掷两个骰子?
- 38.怎么用 Python 把骰子轨迹画出来?
- 39.骰子点数分布长啥样?用直方图一眼看穿!
- 40.用科学计算库让骰子程序“起飞”
- 41.空气质量指数怎么算?手把手教你写一个AQI计算器
- 42.空气质量指数计算:从零开始,让程序看懂空气
- 43.如何读取空气质量数据文件并找出空气质量最好的五个监测点?
- 44.JSON 数据怎么变成 Excel 表格?—— 让数据换个“马甲”
- 45.Python 怎么让程序自己判断文件类型?
- 46.如何让程序自己上网查空气质量?
- 47.用美味的汤来解析网页:Beautiful Soup 入门
- 48.如何让爬虫自动抓取全国所有城市的空气质量?
- 49.爬到的数据怎么存下来?—— 把全国空气质量数据保存为CSV文件
- 50.用 pandas 玩转空气质量数据:找出全国空气最好和最差的城市
- 51.空气质量数据怎么“洗”干净,还能画成图?
怎么用 Python 画一个会动的五角星?
约 18 分钟
小象实战讲义 · Python 入门:8 个小项目边玩边学
欢迎回来!上一章我们学会了用 Python 做汇率换算,让数字自己动起来。这一章,我们要让 Python 拿起画笔,开始画画了!学完这一节,你将能亲手写几行代码,让电脑在屏幕上画出一个闪闪发光的五角星。这可不是静态的图片,而是一个由你的代码“指挥”画笔一步步绘制出来的动画过程,是不是很酷?
💡 核心导读
本节你将学到:
- 召唤画笔:如何让 Python 调用一个叫
turtle(小乌龟)的绘图库。 - 基本指令:学习指挥画笔“前进”、“转弯”的四个核心命令。
- 循环画图:用我们上一章学过的
while循环,让重复的画图动作变得极其简单。 - 本节唯一新增:我们只做一件事——引入
turtle绘图库并学会它的基本移动命令。循环是复习,画五角星是应用。
一、案例描述:我们的第一个图形作品
我们的目标非常明确:用 Python 画一个标准的五角星。
就像你小时候用尺子和笔连接五个点一样,这次我们指挥电脑里的“画笔”来完成。你不需要懂复杂的数学,只需要告诉画笔:“向前走一段,然后向右转一个特定的角度”,重复五次,一个五角星就诞生了!
为了实现这个目标,我们需要一位“绘图助手”。幸运的是,Python 自带了一位——它就是 turtle 库。
二、案例分析:认识我们的绘图助手——turtle
turtle(海龟绘图)是 Python 标准库里的一个模块,它模拟了一只带着画笔的海龟在屏幕上爬行,爬过的轨迹就构成了图形。这个概念源于古老的 Logo 编程语言,非常适合初学者理解绘图过程。
使用它非常简单,只需要一句话:
import turtle这行代码的意思是“引入 turtle 库”。import 是 Python 的关键字,专门用来引入别人已经写好的、功能强大的代码库。我们直接“拿来就用”,这就是模块化编程的魅力——我们不需要知道海龟是怎么画出线的,只需要知道命令它做什么。
引入之后,我们就可以使用 turtle.函数名() 的方式来指挥画笔了。
三、上机实验:指挥画笔,从直线到五角星
1. 搭建程序框架与引入画笔
让我们先创建一个新的 Python 文件,并搭建一个清晰的结构。虽然我们现在代码不多,但养成好习惯很重要。
"""
作者:[你的名字]
功能:五角星的绘制
版本:1.0
日期:[当前日期]
"""
# 1. 引入绘图库
import turtle
# 2. 接下来,我们将在这里编写绘图指令2. 学习画笔的四个基本动作
turtle 库提供了几个最基础的函数,就像给画笔的遥控器:
turtle.forward(distance): 命令画笔向前移动distance个像素的距离。turtle.backward(distance): 命令画笔向后移动。turtle.right(degree): 命令画笔向右旋转degree度(改变方向,不画线)。turtle.left(degree): 命令画笔向左旋转。
这里的坐标系默认是:画笔初始位置在画布中心,头朝右(正东方向)。forward 就是向右画线。
我们来试试画一条线:
import turtle
turtle.forward(150) # 向前画150个像素长的线
# turtle.exitonclick() # 先注释掉,我们稍后解释运行一下,你会看到一个窗口一闪而过,画了一条线。为了能看清,我们需要让窗口保持住。通常我们在绘图结束后加上 turtle.exitonclick(),意思是“点击窗口后退出”。但为了课程代码能顺畅运行,我们先不把它写在可执行代码块里,你可以在自己练习时加上。
3. 画出第一条折线:前进 + 转弯
光是走直线可画不出五角星。我们结合“前进”和“转弯”来画一条折线试试:
import turtle
turtle.forward(100) # 1. 向右画100长的边
turtle.right(90) # 2. 向右转90度(现在头朝下)
turtle.forward(100) # 3. 向下画100长的边运行这段代码,你会看到画笔先向右画线,然后转弯向下画,形成了一个直角。
4. 攻克五角星:找到“前进”和“转弯”的节奏
五角星的每个角是 36 度,但画笔在画每条边时需要转动的外角是 144 度。我们不需要深究这个数学,记住这个“魔法数字”即可。
所以,画一条边的动作是:前进 → 右转144度。 画一个五角星,就是把这个动作重复 5 次。
最“笨”但直观的方法就是写5遍:
import turtle
# 把「前进 → 右转144度」这个动作重复写5遍,就拼出一颗五角星
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)这样确实能画出来,但代码又长又重复。如果你想改变五角星的大小,要改5个数字,很容易出错。
5. 用循环施展魔法:一行命令,重复干活
还记得上一章的 while 循环吗?它是处理重复工作的神器!我们用一个计数器 count 来控制重复5次。
import turtle
# 初始化计数器
count = 1
# 当计数器小于等于5时,执行循环体内的绘图动作
while count <= 5:
turtle.forward(100) # 画一条边
turtle.right(144) # 右转144度
count = count + 1 # 计数器加1,准备画下一条边
# 绘图完成后,窗口保持打开(自己练习时取消注释)
# turtle.exitonclick()运行这段代码,一个完整的五角星就会一步步地被画出来!
循环的魅力:现在,如果你想改变五角星的大小,只需要修改 turtle.forward(100) 里的一个数字就行了。清晰、简单、不易错。
📝 动手练一练
- 改造星星:把上面循环画五角星的代码中,
forward的距离改为 50 和 200,分别运行一下,看看星星大小的变化。 - 画个正方形:利用
forward和right命令,你能写出一个画正方形的程序吗?(提示:正方形需要转90度角) - 挑战六芒星:六芒星是两个正三角形叠加而成。提示:先想清楚正三角形怎么画(每条边走完后向外转 120°、重复 3 次);画完第一个三角形后,让画笔移动(抬笔、前进一小段再落笔)或转到合适方向,再画第二个三角形。注意:光靠“一个循环里换个次数和角度”走一条闭合路径是画不出六芒星的(那样只会把三角形描两遍),关键是画两个三角形。
👉 点击查看第2题参考答案(画正方形)
思路:正方形有四条等长的边,每个内角是90度。所以动作是:前进 → 右转90度,重复4次。
import turtle
count = 0 # 计数器从0开始
while count < 4: # 循环4次
turtle.forward(100)
turtle.right(90)
count = count + 1本章小结
恭喜你!你不仅学会了用 Python 画画,更重要的是掌握了“引入外部库 (import)”这个强大的技能,并复习了用循环 (while) 自动化重复任务。
📋 行动清单
- 在电脑上成功运行了画五角星的代码,亲眼看到了动画过程。
- 尝试修改代码中的数字(如
forward的距离),观察图形如何变化。 - 思考:如果我想画一堆大小不同的五角星,该怎么办?(这是我们下一节要解决的挑战!)
我们让画笔重复画了同一个大小的五角星。下一节,我们将学习如何控制画笔的颜色、抬笔落笔,并让五角星由小到大、一个嵌套着一个地生长出来,让画面更有层次感。敬请期待!
—— 小象教研组
配套资料 · 直接下载
课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。
- 下载第3章代码包:分形树的绘制(含全部版本 4 个 .py)ZIP · 2KB