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为你准备的利器,可以 ...
随机推荐
- JS自适应导航栏,菜单栏
1. 打开 https://github.com/VPenkov/okayNav下载源代码 2.引入两个css样式 <link rel="stylesheet" href=& ...
- Go语言中切片的内部实现和基础功能
切片是一种数据结构,这种数据结构便于使用和管理数据集合.切片是围绕动态数组的概念构建的,可以按需自动增长和缩小.切片的动态增长是通过内置函数append来实现的.这个函数可以快速且高效的增长切片.还可 ...
- ActiveMQ配置详解
原文链接 一.消息目的地策略 在节点destinationPolicy配置策略,可以对单个或者所有的主题和队列进行设置,使用流量监控,当消息达到memoryLimit的时候,ActiveMQ会减慢消息 ...
- (模板)hdoj5977 Garden of Eden(点分治)
题目链接:https://vjudge.net/problem/HDU-5977 题意:给一颗树,每个结点上有一个权值a[i],a[i]<=10,求有多少条路径满足这条路径上所有权值的结点都出现 ...
- shell中防止意外发生的两个实用的设置
set -o nounset set -o errexit set -o nounset 在默认情况下,遇到不存在的变量,会忽略并继续执行,而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的 ...
- Linux Pycharm 添加图标到root账户桌面
1. 去官网下载pycharm程序 2. 解压缩下载到的tar包 3. 在/usr/share/applications目录下新建一个pycharm.desktop, 写入内容如下, 注意红色字体需要 ...
- X86逆向9:通过关键常量破解
本章将讲解一下关于关键全局变量的一些内容,关键的全局变量对于软件的破解非常的有用,找到了关键全局变量并改写它同样可以完成完美爆破一个程序,这里我将使用CM小例子来讲解搜索关键变量的一些技巧,最后我们来 ...
- oracle创建用户表空间
--本次因工作需要,为其他部门提供部分表数据,创建一个新用户与表空间.--system用户下drop user sys_outside cascade;drop tablespace sys_outs ...
- 文件名后面加(1).text
; //在重复名称后加(序号) while (File.Exists(path)) { if (path.Contains(").")) { int start = path.La ...
- SQL的GROUP BY 与 Order By
1.概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理. 2.原始表 3.简 ...