找回密码
 立即注册
查看: 26|回复: 0

告别Scratch,用Python画只小海龟(Turtle入门)

[复制链接]

13

主题

1

回帖

117

积分

管理员

积分
117
发表于 6 天前 | 显示全部楼层 |阅读模式
Python的Turtle和Scratch的画笔模块超级像!🎯
Scratch用的是拖积木,Python用的是写指令——但逻辑一模一样!我们一起来用Python画一只真正的小海龟,而且比Scratch更酷!

🔄 第1步:从Scratch到Python的“翻译表”
先看看Scratch的积木在Python里叫什么(你会发现超级简单!):



Scratch积木Python代码说明
移动10步小龟.forward(10)向前走
右转15度小龟.right(15)右转
左转15度小龟.left(15)左转
将笔的颜色设为红色小龟.color("red")换颜色
将笔的大小设为5小龟.pensize(5)换粗细
落笔小龟.pendown()开始画
抬笔小龟.penup()停止画
重复执行10次for i in range(10):循环
移到x:0 y:0小龟.goto(0, 0)移动到某位置
全部擦除小龟.clear()清屏
看!几乎一模一样,只是写法不同而已!

🐢 第2步:召唤你的小海龟(比Scratch更炫!)
在Scratch里,你要从积木区拖出"移动"积木。在Python里,我们直接写:
python



import turtle# 创建小海龟(就像在Scratch里添加角色)小海龟 = turtle.Turtle()# 让它显示为海龟形状(比Scratch的三角箭头酷多了!)小海龟.shape("turtle")# 设置颜色(和Scratch一样简单)小海龟.color("green")# 设置笔的粗细小海龟.pensize(3)# 走100步(就像Scratch的"移动100步")小海龟.forward(100)# 右转90度(就像Scratch的"右转90度")小海龟.right(90)# 再走100步小海龟.forward(100)turtle.done()
🏆 你刚刚用Python画了一个直角! 在Scratch里要拖4块积木,现在只用写几行字!

🎨 第3步:画正方形(Scratch vs Python)Scratch版本(拖积木):text



当绿旗被点击重复执行4次  移动100步  右转90度
Python版本(写代码):python



import turtle小海龟 = turtle.Turtle()小海龟.shape("turtle")小海龟.color("blue")for 次数 in range(4):    # 重复执行4次    小海龟.forward(100)   # 移动100步    小海龟.right(90)      # 右转90度turtle.done()
看到没?逻辑完全一样!只是Python用的是文字,Scratch用的是积木。

🌟 第4步:画一只小海龟的轮廓(比Scratch更自由!)
现在,我们来画一只真正的小海龟(不是图标,是你自己画的!):
python



import turtle小海龟 = turtle.Turtle()小海龟.speed(8)小海龟.pensize(4)小海龟.color("darkgreen")# === 画海龟的壳(一个大圆) ===小海龟.penup()小海龟.goto(0, -80)     # 移到下面一点小海龟.pendown()小海龟.begin_fill()      # 开始填充颜色小海龟.color("forestgreen")小海龟.circle(80)        # 画圆(半径80)小海龟.end_fill()        # 结束填充# === 画海龟的头(小圆+脖子) ===小海龟.penup()小海龟.goto(60, 20)      # 移到右侧小海龟.pendown()小海龟.color("limegreen")小海龟.begin_fill()小海龟.circle(25)         # 画头小海龟.end_fill()# === 画眼睛(小白点+小黑点) ===小海龟.penup()小海龟.goto(70, 30)小海龟.pendown()小海龟.color("white")小海龟.begin_fill()小海龟.circle(8)          # 眼白小海龟.end_fill()小海龟.penup()小海龟.goto(73, 33)小海龟.pendown()小海龟.color("black")小海龟.begin_fill()小海龟.circle(3)          # 瞳孔小海龟.end_fill()# === 画前脚(两条短线) ===小海龟.penup()小海龟.goto(30, -30)小海龟.pendown()小海龟.color("limegreen")小海龟.pensize(6)小海龟.left(30)小海龟.forward(30)小海龟.penup()小海龟.goto(40, -40)小海龟.pendown()小海龟.right(60)小海龟.forward(30)# === 画后脚 ===小海龟.penup()小海龟.goto(-30, -50)小海龟.pendown()小海龟.left(30)小海龟.forward(30)小海龟.penup()小海龟.goto(-40, -60)小海龟.pendown()小海龟.right(60)小海龟.forward(30)# === 画小尾巴 ===小海龟.penup()小海龟.goto(-70, -40)小海龟.pendown()小海龟.pensize(4)小海龟.right(45)小海龟.forward(20)turtle.done()
🎉 你画了一只真正的小海龟! 在Scratch里,你可能要花10分钟拖积木;在Python里,你学会了更精确地控制!

🚀 第5步:让海龟动起来(比Scratch的动画更酷!)
还记得Scratch的"重复执行"吗?Python可以做得更炫!
python



import turtle小海龟 = turtle.Turtle()小海龟.shape("turtle")小海龟.speed(10)小海龟.pensize(2)# 画一个旋转的彩色海龟(像Scratch的旋转效果)颜色列表 = ["red", "orange", "yellow", "green", "blue", "purple"]for 旋转次数 in range(36):   # 重复36次    小海龟.color(颜色列表[旋转次数 % 6])  # 依次换颜色        # 画一个正方形(就像Scratch的自定义积木)    for 边数 in range(4):        小海龟.forward(80)        小海龟.right(90)        小海龟.right(10)   # 每次旋转10度,产生动画效果turtle.done()
🌟 这个程序画了36个正方形,每个旋转10度,形成了一个彩色旋转万花筒!在Scratch里要做这个效果,你得嵌套两层"重复执行",现在你用Python轻松搞定了!

🎮 第6步:用键盘控制小海龟(比Scratch的事件更强大!)
在Scratch里,你可以用"当按下空格键"积木。在Python里,我们这样做:
python



import turtle小海龟 = turtle.Turtle()小海龟.shape("turtle")小海龟.speed(5)# 定义控制函数(就像Scratch的自定义积木)def 向前走():    小海龟.forward(30)def 向后走():    小海龟.backward(30)def 向左转():    小海龟.left(15)def 向右转():    小海龟.right(15)def 清屏():    小海龟.clear()    小海龟.penup()    小海龟.home()      # 回到中心    小海龟.pendown()# 绑定键盘按键(就像Scratch的"当按下...")turtle.listen()        # 开始监听键盘turtle.onkey(向前走, "Up")      # 按上箭头向前turtle.onkey(向后走, "Down")    # 按下箭头向后turtle.onkey(向左转, "Left")    # 按左箭头左转turtle.onkey(向右转, "Right")   # 按右箭头右转turtle.onkey(清屏, "c")         # 按C键清屏turtle.done()
🎮 现在你可以用键盘控制小海龟了! 这比Scratch的"当绿旗被点击"更互动!

🎯 第7步:Scratch到Python的“思维转换”


Scratch思维Python写法小技巧
当绿旗被点击import turtle + 代码直接运行就是开始
重复执行N次for i in range(N):N是多少就重复多少次
重复执行(无限)while True:无限循环(小心!)
如果...那么if 条件:条件后面要加冒号:
变量变量名 = 值不用拖积木,直接写
自定义积木def 函数名():定义自己的指令

🏆 终极挑战:画一个Scratch风格的小猫!
既然你已经是Python小勇士了,我们来画Scratch的吉祥物——小猫
python



import turtle小海龟 = turtle.Turtle()小海龟.speed(10)小海龟.pensize(3)# === 画猫的脸(大圆) ===小海龟.penup()小海龟.goto(0, -80)小海龟.pendown()小海龟.color("orange")小海龟.begin_fill()小海龟.circle(80)小海龟.end_fill()# === 画两个三角形耳朵 ===小海龟.penup()小海龟.goto(-50, 40)小海龟.pendown()小海龟.color("orange")小海龟.begin_fill()小海龟.goto(-70, 100)小海龟.goto(-20, 50)小海龟.goto(-50, 40)小海龟.end_fill()小海龟.penup()小海龟.goto(50, 40)小海龟.pendown()小海龟.begin_fill()小海龟.goto(70, 100)小海龟.goto(20, 50)小海龟.goto(50, 40)小海龟.end_fill()# === 画眼睛 ===小海龟.penup()小海龟.goto(-30, 20)小海龟.pendown()小海龟.color("white")小海龟.begin_fill()小海龟.circle(15)小海龟.end_fill()小海龟.penup()小海龟.goto(30, 20)小海龟.pendown()小海龟.begin_fill()小海龟.circle(15)小海龟.end_fill()# 瞳孔小海龟.penup()小海龟.goto(-28, 25)小海龟.pendown()小海龟.color("black")小海龟.begin_fill()小海龟.circle(5)小海龟.end_fill()小海龟.penup()小海龟.goto(32, 25)小海龟.pendown()小海龟.begin_fill()小海龟.circle(5)小海龟.end_fill()# === 画胡须 ===小海龟.penup()小海龟.goto(-40, 0)小海龟.pendown()小海龟.color("black")小海龟.pensize(2)小海龟.goto(-80, 10)小海龟.penup()小海龟.goto(-40, -10)小海龟.pendown()小海龟.goto(-80, -10)小海龟.penup()小海龟.goto(40, 0)小海龟.pendown()小海龟.goto(80, 10)小海龟.penup()小海龟.goto(40, -10)小海龟.pendown()小海龟.goto(80, -10)# === 鼻子(小三角形) ===小海龟.penup()小海龟.goto(0, -10)小海龟.pendown()小海龟.color("pink")小海龟.begin_fill()小海龟.goto(-8, -5)小海龟.goto(8, -5)小海龟.goto(0, -10)小海龟.end_fill()# === 嘴巴 ===小海龟.penup()小海龟.goto(0, -5)小海龟.pendown()小海龟.color("black")小海龟.right(30)小海龟.forward(15)小海龟.penup()小海龟.goto(0, -5)小海龟.pendown()小海龟.left(60)小海龟.forward(15)turtle.done()
🐱 你画了一只Scratch小猫! 现在你可以自豪地说:我从Scratch毕业了,用Python画得更酷!

📊 对比总结(Scratch vs Python Turtle)


项目ScratchPython Turtle
学习方式拖积木 🧩写代码 ✍️
控制精度粗粒度精细控制
速度手动拖拽自动运行(更快!)
复杂度限制屏幕大小限制几乎无限
成就感⭐⭐⭐⭐⭐⭐⭐⭐
未来扩展只能做动画可以做游戏、网站、AI

🎯 给你的小挑战
试试把这几个Scratch项目改成Python:
  • ✅ 画一个正方形 → 你已经会了!
  • ✅ 画一个彩虹螺旋 → 用循环 + 颜色列表
  • ✅ 键盘控制移动 → 用 onkey 事件
  • 🏆 画一个你自己的头像


🌟 你现在会了什么?
  • ✅ 从Scratch思维转换到Python思维
  • ✅ 用Turtle画图形(正方形、圆、海龟、小猫)
  • ✅ 用循环产生动画效果
  • ✅ 用键盘控制小海龟
  • ✅ 画出了比Scratch更精细的作品

你已经不是“Scratch玩家”了,你是“Python小画家”! 🐢🎨

想继续进阶吗?下一步我可以教你:
  • 🎮 用Turtle做一个小游戏(接水果、打砖块)
  • 🌌 画出星空、彩虹、极光
  • 🧮 用Turtle来学数学(画函数图像)


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表