为了让博友们加深对 turtle 库的印象以及能更加灵活地运用 turtle 库,故按照博主之前编写关于 turtle 文章顺序设置实战任务。如果没有看过博主之前文章的小伙伴们,可以点击以下链接进行学习观看,理论 + 实践才能成长得更快,加油。
- 全网最细海龟 (turtle) 画图讲解 (一):初探海龟绘图
- 全网最细海龟 (turtle) 画图讲解 (二):窗口控制
- 全网最细海龟 (turtle) 画图讲解 (三):设置画笔样式
- 全网最细海龟 (turtle) 画图讲解 (四):绘制图形
- 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计
1. 输出逐渐变大的文字
在海龟绘图中,默认文字是同样大小并且一次性地输出到屏幕上。本任务要求将一行自己喜欢的文字一个一个地进行输出,并且逐渐变大。例如,输出 唯有行动才能改造命运
,效果如下图所示。
考察知识点:turtle 模块输出文字的应用
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计
示例代码如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:8.输出逐渐变大的文字.py
@time:2021/01/04
"""
import turtle # 导入海龟绘图模块
out_str = '唯有行动才能改造命运'
turtle.color('green')
turtle.penup()
turtle.back(300) # 向前后退300像素
turtle.pendown()
for index, i in enumerate(out_str): # 循环输出文字
# print(index, i) 0 唯,1 有,2 行.....
turtle.write(i, True, font=('宋体', 12 + index * index, 'normal')) # 输出每个文字
turtle.done() # 海龟绘图程序的结束语句
2. 根据用户输入的边数绘制多边形
本任务要求:通过输入对话框让用户输入一个数值作为要绘制多边形的边数,从而实现绘制指定边数的多边形。例如,用户在弹出的数字输入对话框中,输入6,则绘制一个六边形,如下图所示。
考察知识点:turtle 模块输入文字 + 绘制图形的应用
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计
示例代码如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:9.根据用户输入的边数绘制多边形.py
@time:2021/01/04
"""
import turtle # 导入海龟绘图模块
num = turtle.numinput('系统提示', '输入多边形的边数:')
turtle.color('orange')
for i in range(int(num)):
turtle.forward(100) # 边长
turtle.left(180 - (num - 2) * 180 / num) # 旋转角度
3. 通过←、→、↑、↓键控制海龟的移动
在游戏中,通过按下键盘上的 ←、→、↑、↓ 键来控制精灵移动。本任务要求实现按下 ←、→、↑、↓ 键控制海龟移动,例如,按下 ↑ 键海龟头朝上同时一直向前移动,按下 ← 键海龟头朝左同时一直向左移动。
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计
示例代码如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:10.通过方向键控制海龟移动.py
@time:2021/01/04
"""
import turtle # 导入海龟绘图模块
def up_move(): # 朝上
turtle.setheading(90)
turtle.forward(2) # 向前移动2像素
def down_move(): # 朝下
turtle.setheading(270)
turtle.forward(2) # 向前移动2像素
def left_move(): # 朝左
turtle.setheading(180)
turtle.forward(2) # 向前移动2像素
def right_move(): # 朝右
turtle.setheading(0)
turtle.forward(2) # 向前移动2像素
turtle.listen() # 让海龟屏幕(TurtleScreen)获得焦点
turtle.shape('turtle') # 设置海龟光标形状
turtle.penup() # 抬笔
turtle.onkeypress(up_move, 'Up') # 按下向上方向
turtle.onkeypress(down_move, 'Down') # 按下向下方向
turtle.onkeypress(left_move, 'Left') # 按下向左方向
turtle.onkeypress(right_move, 'Right') # 按下向右方向
turtle.done() # 海龟绘图程序的结束语句(开始主循环)
4. 追逐鼠标的红点
本任务要求编写一段 Python 代码,将画笔形状设置为圆点,画笔颜色为红色,然后实现单击屏幕时光标移动到点击位置,同时在原位置和新位置之间画一条线,再次单击,则继续画线,如下图所示。当单击鼠标右键时清空屏幕,光标位置不动。
参考学习文章: 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计
示例代码如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:11.追逐鼠标的红点.py
@time:2021/01/04
"""
import turtle # 导入海龟绘图模块
turtle.shape('circle') # 画笔形状为圆点
turtle.color('red') # 画笔颜色为红色
def funclicklt(x, y): # 绘制线条
turtle.goto(x, y)
def funclickrt(x, y):
turtle.clear() # 清空屏幕
turtle.onscreenclick(funclicklt, 1) # 按下鼠标左键
turtle.onscreenclick(funclickrt, 3) # 按下鼠标右键
turtle.done() # 海龟绘图程序的结束语句(开始主循环)
至此今天的案例就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习 Python 基础的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!
好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请点赞
、评论
、收藏
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注
我哦!