原标题:有趣的Python turtle绘图

Python Turtle是Python的一个编程教育类库,越来越受到教育者的关注,近日,以“智能时代,逐梦成长”为主题的第5届全国青少年创意编程与智能设计大赛正式开始,本届大赛增加了Python创意编程比赛。科技学堂也开设了《Python-Turtle图形编程入门》帮助教师掌握Python并应用于课程中。

来源 | 《中国科技教育》2019年第6期

作者 | 毛京宇/北京师范大学第三附属中学 魏云靖/北京市师达中学

01

Python turtle 的发展

Python 中的turtle 模块受启发于在欧美有着广泛基础且历史悠久的LOGO 语言。LOGO语言形式非常直接,通过一组简单的指令就可以指挥计算机在屏幕上绘制出或极具现代感或抽象复杂的图像。正是因为LOGO 教学的广泛开展,使得很多青少年不再将编程等同于geeks 或nuts 的专长,并对数学、逻辑和计算机等相关学科产生了浓厚的兴趣。

初代turtle 模块随2001 年12 月21 日发布的Python 2.2 版本被添加到了Python 标准库之中。后经多个版本的调整逐渐稳定并形成当前版本中的功能和操作。

Python turtle 是向LOGO 语言的致敬,可以通过turtle.mode 函数予以调整,尽最大可能还原LOGO 语言中小海龟操作的特点。

随着Python 语言的流行和普及, 一位名叫Ram Rachum 的网络工程师重构了Python turtle 并单独封装形成了一款叫作PythonTurtle 的教学软件,可以在Windows和Mac 计算机上安装和运行。

02

Python海龟绘图课

在正式上课之前,请注意:

(1)Python是一种开放标准的通用开发语言,不少组织发行了各具特色的版本。本文所载程序使用的Python编译器为CPython(官方社区发行版本)3.7.3。当然,如果读者使用其他发行版就不能运行示例脚本。当出现意外情况时,请您在检查时考虑版本因素。

(2)尽管现在互联网上有很多在线版本的Python运行环境(无论是Python官方社区的Interactive Shell,又或者各大厂家提供的在线Jupyter Notebook服务),并且turtle是Python标准库,但是由于无法加载并创建tkinter.Canvas画布的原因,所以在线平台无法让海龟畅游作画。

本文以偏概全仅对绝大多数常用turtle模块函数进行梳理,希望能对初学者有所引领。学习Python最好的平台当然还是官方社区提供的文档站点,读者可以访问https://docs.python.org/zh-cn/3/library/turtle.html进行更为全面的学习。

03

让海龟畅游起来

挥毫创作当然要首先学会运笔。Python Turtle的基础就是让海龟能够在画布中畅快遨游。

有了表1这些基础我们就可以绘图了。

怎么turtle画图一上来就让读者碰了钉子?也许你觉得海龟画图太过平淡,那我们就在上面程序的基础上加入for循环做点儿炫目的效果。这里我有意识地使用了2个之前没有讲解过的turtle模块中的绘图函数,相信聪明的读者在阅读源代码的过程中一定能够理解其中深意。

04

“油漆桶”工具

一笔一笔“挥毫”虽然有趣,但如果需要大面积着色时还是“泼墨”画法更有效率。表2中的一组turtle函数不但完成画笔“油漆桶”般的填充着色功能,而且还能设置和判断海龟绘图时的状态。

准备好了吗?这回我们加入了函数这种结构化程序设计的技术优化脚本,现在要验证所学的新知识了。

用Python turtle打太极,是不是很有趣?

05

互动绘图板

Python turtle除了能够完成基本的绘图任务之外,还可以在程序中添加键盘和鼠标交互函数,制作出具有互动功能的程序甚至小游戏。下面是与交互有关的常用函数,让我们一起来学习一下吧。

有了表3这些函数的辅助,我们就可以制作一个绘图板程序。在操作时,鼠标左键控制“画笔”在绘图板中运动,鼠标中键可以切换绘图时的颜色,鼠标右键控制图形填充及“画笔”在绘图板上的“落笔”“抬笔”操作。

06

总结

turtle绘图模块受LOGO语言启发而创建,能够有效激发初学者的学习热情并释放创意。turtle绘图模块仅仅是Python不断发展壮大标准库中的其中一员,无论是浅尝辄止热衷于在计算机上挥毫泼墨,还是循序渐进探究前沿科技,都是一个非常具有潜力的终南捷径。返回搜狐,查看更多

责任编辑:

python turtle循环图案-有趣的Python turtle绘图相关推荐

  1. python turtle循环图案-Python内置模块turtle绘图详解

    urtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的 ...

  2. python turtle循环图案-Python绘图Turtle库详解

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  3. python恶搞小程序-有趣的python小程序

    有趣的python小程序 1.密码生成器x=int(input()) print(''.join(__import__('random').choice('QWERTYUIOPASDFGHJKLZXC ...

  4. python 默认参数_有趣的 Python 特性 3 | 当心默认可变参数这个大猪蹄子。

    本文字数:1575 字 阅读本文大概需要:4 分钟 写在之前 Python 提供了很多让使用者觉得舒服至极的功能特性,但是随着不断的深入学习和使用 Python,我发现其中存在着许多玄学的输出与之前预 ...

  5. python while循环if_初入python 用户输入,if,(while 循环)

    python 基础 编译型: 一次性将所有程序编译成二进制文件. 缺点:开发效率低,不能跨平台 优点:运行速度快. :c ,c++语言 等等.... 解释行:当程序执行时,一行一行的解释. 优点:开发 ...

  6. python中循环语句的用法,python几种循环方式

    python中while循环的用法是什么? python while循环语句:while 判断条件(condition):执行语句(statements)--执行语句可以是单个语句或语句块. 判断条件 ...

  7. 用python输出下列图案_使用Python打印图案“有趣”

    我不想直接打印字符,而是先使用专用函数将它们保存到字符串中.一旦有了这些字符串,它们就可以很容易地组合成单词:def pattern_f(): return [ ''.join([ 'F' if (c ...

  8. 用python画螺旋图案_用Python绘制彩色螺旋矩阵

    本文章小编教大家使用Python海龟绘制彩色螺旋矩阵,下面是相关代码块的解析,仅供喜爱python的小伙伴们学习参考. 1. 导入turtle库 from turtle import* 2.设置画布背 ...

  9. python画笑脸图案-怎么用python实现画笑脸

    在Python中画笑脸可以使用turtle库实现. 1.打开idel,通过idel新建一个py文件,在空白的文件中输入下面的代码按F5运行此文件就可以画笑脸了.from turtle import * ...

最新文章

  1. 编辑神器VIM下安装zencoding
  2. c语言运算优先级记忆方法
  3. ECCV2020 收录论文汇总(持续更新中)附打包下载
  4. Ubuntu根目录空间不足
  5. Bootstrap页面布局16 - BS导航菜单和其响应式布局以及导航中的下拉菜单
  6. 关于thymeleaf静态资源找不到的问题
  7. matlab如何判断两个矩阵的元素是否相同_蚁群算法及其MATLAB实现
  8. Unity 原生版本管理工具VersionControl - Plastic SCM 详解
  9. MySQL卸载与安装
  10. HIVE Sql 笛卡尔积关联导致查询过慢问题优化
  11. 将计算机设置成交换机主机名,各种交换机配置命令
  12. Java实现随机验证码和验证码图片渲染功能
  13. ros_arduino_bridge功能包集的使用错误及解决方法总结
  14. 渗透测试实战指南笔记
  15. 自建DHCP TFTP服务 用PXE启动实现无人值守安装Centos6
  16. 黑苹果详细安装教程-基于OpenCore官网指导-UPUPMO(macOS Monterey)
  17. LAND网络渗透测试
  18. 用计算机程序实现离散化的对象模型,模糊PID应用
  19. linux nas解决方案_畅快玩转NAS 篇一:Linux权限简单讲解
  20. 会轻易的找到“回家”的路

热门文章

  1. java collections_【Java视频教程】day31-集合练习??
  2. linux转换C编码风格
  3. 开发日记-20190718 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 11
  4. TensorRT加速 ——NVIDIA终端AI芯片加速用,可以直接利用caffe或TensorFlow生成的模型来predict(inference)...
  5. ES业界优秀实践案例汇总
  6. python 数据验证
  7. angular1x初始与架构演进(三)Ui-Router+OcLazyLoad加载模块
  8. python:函数可以返回值--编写脚本计算24 + 34 / 100 - 1023
  9. python学习笔记(IO模型)
  10. js跨域请求方式 ---- JSONP原理解析