Python标准库: turtle--海龟绘图。
turtle --- 海龟绘图
(点击查看官方文档。)
简介
import turtle # 调用该库。Turtle的实例对象,默认命名为turtle。
turtle.forward(10) from turtle import * #调用方法时,可以省略写turtle对象。
之所以叫turtle,其实就是一个想象,在绘图区的箭头作为一支笔,用它来绘制图形。
turtle模块使用tkinter 实现基本图形界面,因此需要安装了 Tk 支持的 Python 版本。
python3 -m tkinter #如果有这个模块会弹出一个小窗口。
turtle模块支持面向对象和过程,接口有2+2个类:
- TurtleScreen类:定义图形窗口作为绘图场所。
- 派生的Screen子类,产生一个单例对象。
- 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--海龟绘图。的更多相关文章
- Python 标准库一览(Python进阶学习)
转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连 ...
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- 转--Python标准库之一句话概括
作者原文链接 想掌握Python标准库,读它的官方文档很重要.本文并非此文档的复制版,而是对每一个库的一句话概括以及它的主要函数,由此用什么库心里就会有数了. 文本处理 string: 提供了字符集: ...
- python 标准库大全
python 标准库 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 string ...
- Python标准库、第三方库和外部工具汇总
导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...
- Python 标准库、第三方库
Python 标准库.第三方库 Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具.这些库可用于文件读写 ...
- 140种Python标准库、第三方库和外部工具
导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...
- Python标准库14 数据库 (sqlite3)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.S ...
- python标准库00 学习准备
Python标准库----走马观花 python有一套很有用的标准库.标准库会随着python解释器一起安装在你的电脑上的.它是python的一个组成部分.这些标准库是python为你准备的利器,可以 ...
随机推荐
- 创建vue 项目
sudo npm install -g @vue/cli-init vue init webpack my-project cd my-project/ npm install npm run dev
- Linux 文件和目录的属性及权限
一.Linux中的文件 1.1文件属性概述 Linux里一切皆文件! Linux系统中的文件或目录的属性主要包括;索引节点(inode).文件类型.权限属性.链接数.所归属的用户组.最近修改时间等内容 ...
- 语言I博客作业04
问题 答案 这个作业属于哪个课程 C语言程序设计II 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9771 我 ...
- Java-Redis 热部署问题
项目请求时报错: java.lang.ClassCastException: cn.xingaohbd.seckil.model.User cannot be cast to cn.xingaohbd ...
- 【ActiveReports 大数据分析报告】2019国庆旅游出行趋势预测
今年国庆假期全国接待国内游客人数有望达到8亿人次! 随着2019国庆小长假的临近,不少游客已经开始着手规划假期出游路线.据权威机构发布的<2019国庆旅游趋势预测报告>显示,今年“十一黄金 ...
- spring boot 使用elasticsearch
在文章开始之前我们先来介绍一下elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎. 查询 : Elasticsearch 允许执行和合并多种类型的搜索 — 结构化.非 ...
- THUSC2016
补退选 Luogu LOJ BZOJ 比较裸. 建一棵Trie树,记录一下每个节点的\(sum\)表示经过该点的字符串个数,每次暴力插入.删除. 同时每个节点维护一个vector,记录一下这个点的\( ...
- 初遇PHP(一)
因为想给自己弄一个微信公众号,顺便提升一下自己,所以有了以下内容,本次学习的最终目标是能用php制作套微信公众号,然后转成Java.为什么要这么麻烦呢,其一是买的资料书是php的,其二是顺水推舟刚好可 ...
- drf-更新四大接口-单改整体-单改局部-群改整体-群改局部-04
目录 复习 基于前一天序列化基础 整体单改 单与整体局部修改 复习 """ 1.ModelSerializer序列化类 models.py class BaseModel ...
- T100——按xls格式批量导入数据
弹出File Browser窗口 PRIVATE FUNCTION cxrt020_open_file() DEFINE l_dir LIKE type_t.chr500 DEFINE r_succe ...