turtle --- 海龟绘图

(点击查看官方文档。)

简介

import turtle   # 调用该库。Turtle的实例对象,默认命名为turtle。
turtle.forward(10) from turtle import * #调用方法时,可以省略写turtle对象。

之所以叫turtle,其实就是一个想象,在绘图区的箭头作为一支笔,用它来绘制图形。

turtle模块使用tkinter 实现基本图形界面,因此需要安装了 Tk 支持的 Python 版本。

python3 -m tkinter  #如果有这个模块会弹出一个小窗口。

turtle模块支持面向对象和过程,接口有2+2个类:

  1. TurtleScreen类:定义图形窗口作为绘图场所。

    • 派生的Screen子类,产生一个单例对象。
  2. RawTurtle(也叫RawPen)类:定义如何绘图。
    • 派生的子类Turtle(也叫Pen): 该类的对象在Screen实例上绘图。

上面TurtleScreen/Screen, RawTurtle/Turtle 的所有方法存在对应的函数,即作为面向过程的接口组成部分。

过程式接口提供与 Screen 和 Turtle 类的方法相对应的函数。函数名与对应的方法名相同。

  • 当 Screen 类的方法对应函数被调用时会自动创建一个 Screen 对象。
  • 当 Turtle 类的方法对应函数被调用时会自动创建一个 (匿名的) Turtle 对象。

⚠️官方文档非常详细。还包括大量演示脚本。

例子

例子,画五角星,五个。

from turtle import *

def draw(x, y):
penup() #笔和纸分开,移动不绘画。
goto(x ,y)
pendown() setheading(0)
for i in range(5):
forward(40)
right(144) for x in range(0, 250, 50): #range(start, stop, step)
draw(x, 0)

官方第一个例子:

from turtle import *

color('red', 'yellow')
begin_fill() while True:
forward(200)
left(170)
if abs(pos()) < 1:
break end_fill()
done()

这里的abs(pos())为什么返回数值并和1比较?

看这里源代码:https://github.com/python/cpython/blob/master/Lib/turtle.py#L266

class Vec2D(tuple):
def __abs__(self):
return (self[0]**2 + self[1]**2)**0.5

⚠️x^2 等同于 x**2 。

pos()返回的对象的类型:

>>> type(pos())
<class 'turtle.Vec2D'>
>>> dir(pos())
['__abs__', '__add__',...后面略

可以知道Vec2D实例对象有它自己的方法_abs_。

所以,上面的代码当回到(0, 0)即最开始的位置时,abs(pos()) 肯定小于1。中断循环。

Python标准库: turtle--海龟绘图。的更多相关文章

  1. Python 标准库一览(Python进阶学习)

    转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连 ...

  2. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  3. 转--Python标准库之一句话概括

    作者原文链接 想掌握Python标准库,读它的官方文档很重要.本文并非此文档的复制版,而是对每一个库的一句话概括以及它的主要函数,由此用什么库心里就会有数了. 文本处理 string: 提供了字符集: ...

  4. python 标准库大全

    python 标准库 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 string ...

  5. Python标准库、第三方库和外部工具汇总

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  6. Python 标准库、第三方库

    Python 标准库.第三方库 Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具.这些库可用于文件读写 ...

  7. 140种Python标准库、第三方库和外部工具

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  8. Python标准库14 数据库 (sqlite3)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.S ...

  9. python标准库00 学习准备

    Python标准库----走马观花 python有一套很有用的标准库.标准库会随着python解释器一起安装在你的电脑上的.它是python的一个组成部分.这些标准库是python为你准备的利器,可以 ...

随机推荐

  1. 【POJ - 3045】Cow Acrobats (贪心)

    Cow Acrobats Descriptions 农夫的N只牛(1<=n<=50,000)决定练习特技表演. 特技表演如下:站在对方的头顶上,形成一个垂直的高度. 每头牛都有重量(1 & ...

  2. 再次挑戰UCOSII内核源码

    上次打算看UCOSII(嵌入式实时操作系统)源码还是在大四下学期,当时搜集了很多资料源代码.文档.电子书.结果半路放弃了,究其原因  1.知识原因,虽然已经使用C语言一段时间,但是基础并不好,并没有参 ...

  3. win10下查看进程,杀死进程

    参考链接:https://blog.csdn.net/qq_36819098/article/details/80262482

  4. linux的route

    参考: https://blog.csdn.net/u011857683/article/details/83795435 老男孩: https://blog.51cto.com/oldboy/974 ...

  5. SaltStack安装部署

    SaltStack安装部署 安装: 一. master: 1. 配置yum源安装 # rpm --import https://repo.saltstack.com/yum/redhat/6/x86_ ...

  6. 【转帖】.NET的一点历史故事:作者的一些感想

    .NET的一点历史故事:作者的一些感想 https://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA==&mid=2654068684&idx=2&a ...

  7. Spring Cloud Feign接口返回流

    身无彩凤双飞翼,心有灵犀一点通. 服务提供者 @GetMapping("/{id}") public void queryJobInfoLogDetail(@PathVariabl ...

  8. E.XKC's basketball team(The Preliminary Contest for ICPC Asia Xuzhou 2019)

    https://nanti.jisuanke.com/t/41387 解: 离散化+线段树. #define IOS ios_base::sync_with_stdio(0); cin.tie(0); ...

  9. linux常用终端命令(三)用户和权限

    三.用户权限相关命令 用户 和 权限的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 1.用户和权限的基本概念 1.1.基本概念 用户管理包括 用户 与 组 管理 linux系统中 ...

  10. 【openpyxl】 关于 单元格背景色 的疑惑

    openpyxl   优点: 对文件进行操作, 也就是说: 如果一台电脑 没有Office excel 或 WPS excel, xlsx 是打不开的,会提示你选择程序打开.   但这时    ope ...