第四章 python的turtle库的运用
我们可以尝试用python的自带turtle库绘制一条蟒蛇
首先我们设计一下蟒蛇的基本形状

我们先把这段蟒蛇绘制的实例代码贴出来,各位可以在自己的本地运行一下看看效果,然后我们再继续分析代码:
1 #PythonDraw.py
2 import turtle
3 turtle.setup(650, 350, 200, 200)
4 turtle.penup()
5 turtle.fd(-250)
6 turtle.pendown()
7 turtle.pensize(25)
8 turtle.pencolor("purple")
9 turtle.seth(-40)
10 for i in range(4):
11 turtle.circle(40, 80)
12 turtle.circle(-40, 80)
13 turtle.circle(40, 80/2)
14 turtle.fd(40)
15 turtle.circle(16, 180)
16 turtle.fd(40 * 2/3)
17 turtle.done()
程序关键:import保留字,引入了一个绘图体系,名字叫:turtle,就是海龟
学会海龟绘图体系之后,我们可以完成更加复杂的绘制:五角星绘制、国旗绘制、机器猫绘制
掌握了绘制一条线的方法,就可以绘制整个世界
turtle库概述:
turtle库的turtle绘图体系的python实现
turtle绘图体系:1969年诞生,主要用于程序设计入门
python的标准库之一,入门级的图形绘制函数库
python的计算生态:python标准库+第三方库
标准库:随解释器直接安装到操作系统的功能模块
第三方库:需要经过安装才能使用的功能模块
turtle的原理:
turtle是一种真实的存在,有一只海龟,在窗体的正中心,在画布上游走
走过的轨迹形成了绘制的图形
海龟由程序控制,可以变换颜色、改变宽度等
turtle的绘图窗体:
turtle的一个画布空间,最小单位是像素
turtle的绘图窗体:

turtle的绘图窗体:
1 turtle.setup(width, height, startx, starty)
注意三点:
1、setup设置船体的大小及位置
2、4个参数后两个参数可选
3、setup不是必须的

turtle空间坐标体系
绝对坐标:

1 turtle.goto(x,y)
这句是常用语法,让海龟爬
我们试试如下的代码,然后看看运行结果
1 import turtle
2 turtle.goto( 100, 100)
3 turtle.goto( 100,-100)
4 turtle.goto(-100,-100)
5 turtle.goto(-100, 100)
6 turtle.goto(0,0)
我们运行之后看看效果,如下图所示:

海龟的空间坐标体系

turtle.circle(r,angle),海龟左侧圆心,半径为r画圆
1 import turtle
2 turtle.circle(100,90)
3 turtle.done()
动手试试上述代码,会加深对circle函数的理解
下面我们了解一下海龟库的角度坐标体系
turtle.seth(angle)
1、seth() 改变乌龟行进方向
2、angle为绝对角度
3、seth只改变方向但不行进

海龟也有相对角度
1 turtle.left(angle)
2 turtle.right(angle)
我们来试试如下代码的绘制效果,来体会Turtle的角度体系
1 import turtle
2 turtle.left(45)
3 turtle.fd(150)
4 turtle.right(135)
5 turtle.fd(300)
6 turtle.left(135)
7 turtle.fd(150)
8 turtle.done()
绘制结果如下图所示:

下面我们涉及一下RGB色彩体系
万物色都可以由三种颜色构成
RGB指的是红绿蓝三个通道的颜色组合
覆盖视力所能感知的所有颜色
RGB每色取值范围是0-255或0-1小数
常用的RGB色彩:
| 英文名称 | RGB整数值 | RGB小数值 | 中文名称 |
| white | 255,255,255 | 1,1,1 | 白色 |
| yellow | 255,255,0 | 1,1,0 | 黄色 |
| magenta | 255,0,255 | 1,0,1 | 洋红 |
| cyan | 0,255,255 | 0,1,1 | 青色 |
| blue | 0,0,255 | 0,0,1 | 蓝色 |
| black | 0,0,0 | 0,0,0 | 黑色 |
| seashell | 255,245,238 | 1,0.96,0.93 | 海贝色 |
| gold | 255,215,0 | 1,0.84,0 | 金色 |
| pink | 255,192,203 | 1,0.75,0.80 | 粉红色 |
| brown | 165,42,42 | 0.65,0.16,0.16 | 棕色 |
| purple | 160,32,240 | 0.63,0.13,0.94 | 紫色 |
| tomato | 255,99,71 | 1,0.39,0.28 | 番茄色 |
turtle的RGB色彩模式
默认采用小数值,可以切换成整数值:
1 turtle.colormode(mode)
2 #1.0:RGB小数值模式
3 #255:RGB整数值模式
turtle程序语法元素分析:
库引用:
扩充python程序功能的方式
用import保留字完成,采用<a>.<b>()编码风格
import <库名>
<库名>.<函数名>(<函数参数>)
1 #PythonDraw.py
2 import turtle
3 turtle.setup(650, 350, 200, 200)
4 turtle.penup()
5 turtle.fd(-250)
6 turtle.pendown()
7 turtle.pensize(25)
8 turtle.pencolor("purple")
9 turtle.seth(-40)
10 for i in range(4):
11 turtle.circle(40, 80)
12 turtle.circle(-40, 80)
13 turtle.circle(40, 80/2)
14 turtle.fd(40)
15 turtle.circle(16, 180)
16 turtle.fd(40 * 2/3)
17 turtle.done()
可是,超级多的turtle,好烦,咋办????
import的更多用法:
使用from和import保留字共同完成
from <库名> import <函数名>
from <库名> import *
<函数名>(<函数参数>)
1 #PythonDraw.py
2 from turtle import *
3 setup(650, 350, 200, 200)
4 penup()
5 fd(-250)
6 pendown()
7 pensize(25)
8 pencolor("purple")
9 seth(-40)
10 for i in range(4):
11 circle(40, 80)
12 circle(-40, 80)
13 circle(40, 80/2)
14 fd(40)
15 circle(16, 180)
16 fd(40 * 2/3)
17 done()
这么好的方法咋不早说呢???
因为第一种方法不会出现函数重名问题,而第二种方法会出现函数重名问题
import的更多用法
使用import和as保留字共同完成
import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
相当于给库起个简单的名字,如:狗娃
1 #PythonDraw.py
2 import turtle as t
3 t.setup(650, 350, 200, 200)
4 t.penup()
5 t.fd(-250)
6 t.pendown()
7 t.pensize(25)
8 t.pencolor("purple")
9 t.seth(-40)
10 for i in range(4):
11 t.circle(40, 80)
12 t.circle(-40, 80)
13 t.circle(40, 80/2)
14 t.fd(40)
15 t.circle(16, 180)
16 t.fd(40 * 2/3)
17 t.done()
这个方法比较推荐,也简洁了代码书写。
下面我们来分析下面这段代码的画笔控制函数
1 turtle.penup()
2 turtle.fd(-250)
3 turtle.pendown()
4 turtle.pensize(25)
5 turtle.pencolor("purple")
画笔操作后一直有效,一般成对出现
turtle.penup() #抬起画笔,海龟在飞 别名:turtle.pu()
turtle.pendown() #方向画笔,海龟在爬 别名:turtle.pd()
画笔设置后一直有效,直到下次重新设置
turtle.pensize(width) 别名:turtle.width(width)
画笔宽度,也就是海龟的腰围
turtle.pencolor(color) color为颜色字符串或者RGB值
画笔颜色,海龟在涂装
pencolor(color)中的color参与可以有三种形式
1、颜色字符串 :turtle.pencolor("purple")
2、RGB的小数值:turtle.pencolor(0.63,0.13,0.94)
3、RGB的元组值:turtle.pencolor((0.63,0.13,0.94))
turtle的运动控制函数
控制海龟行进:走直线&走曲线
turtle.forward(d) 别名turtle.fd(d)
向前行进,海龟走直线
d:行进距离,可以为负数
turtle.circle(r,extend=None)
根据半径r绘制extend角度的弧形
r:默认圆心在海龟左侧r距离的位置
extent:绘制角度,默认360度整圆
方向控制函数
turtle.seth(45)
turtle.seth(-135)

控制海龟面对的方向:绝对角度和相对角度
turtle.left(angle) 海龟向左转
turtle.right(angle) 海龟向右转
angle:在海龟当前行进方向上旋转的角度
循环语句与range()函数
1 for i in range(4):
2 tirtle.circle(40,80)
3 tirtle.circle(-40,80)
按照一定次数循环执行一组语句
for <变量> in range(<次数>):
<被循环执行的语句>
<变量>表示每次循环的计数,0到<次数>-1

range()函数:产生循环计数序列
range(N) 产生0到N-1的整数序列,共N个
range(M,N)产生M到N-1的整数序列,共N-M个
第四章 python的turtle库的运用的更多相关文章
- [Python学习笔记][第四章Python字符串]
2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...
- [Python笔记][第四章Python正则表达式]
2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...
- Python使用turtle库与random库绘制雪花
记录Python使用turtle库与random库绘制雪花,代码非常容易理解,画着玩玩还是可以的. 完整代码如下: 效果图如下:
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Python之turtle库-小猪佩奇
Python之turtle库-小猪佩奇 #!/usr/bin/env python # coding: utf-8 # Python turtle库官方文档:https://docs.python.o ...
- 《Python CookBook2》 第四章 Python技巧 对象拷贝 && 通过列表推导构建列表
(先学第四章) 对象拷贝 任务: Python通常只是使用指向原对象的引用,并不是真正的拷贝. 解决方案: >>> a = [1,2,3] >>> import c ...
- Python中turtle库的使用
Turtle图形库 Turtle库是Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下,常用函数有以下几种: 画笔控制函数 penup():抬起画笔: pendow ...
- python使用turtle库绘制奥运五环
效果图: #奥运五环 import turtle turtle.setup(1.0,1.0) #设置窗口大小 turtle.title("奥运五环") #蓝圆 turtle.pen ...
- Python:turtle库的使用及图形绘制
目录 一.绘制一个八边形 二.绘制一个八角图形 三.简述问题 四.循环程序设计 五.绘制一个自己喜欢的图形 一.绘制一个八边形 使用turtle库,绘制一个八边形 代码: from turtle im ...
随机推荐
- [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings
[论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 本文结构 解决问题 主要贡献 算法原理 参考文 ...
- Web前端自动化测试Cypress实践总结
本文主要首先主要介绍了什么是自动化测试,接着对常用的自动化测试框架进行了对比分析,最后,介绍了如果将自动化测试框架Cypress运用在项目中. 一.自动化测试概述 为了保障软件质量,并减少重复性的测试 ...
- .Net Redis实战——使用Redis构建Web应用
示例介绍 示例1:借助Redis实现购物车功能 示例2:Redis实现网页缓存和数据缓存 借助Redis实现购物车功能 每个用户的购物车都是一个散列,散列存储了商品ID与商品订购数量之间的映射.订购商 ...
- [leetcode] 46. 全排列(Java)
46. 全排列 这题我们可以借用31. 下一个排列写的nextPermutation函数来做,稍微改造一下即可 注意要先给nums排个序 class Solution { // 当没有下一个排列时re ...
- 『言善信』Fiddler工具 — 4、Fiddler面布局详解【工具栏】
目录 (一)工具栏详细介绍 1.第一组工具: 2.第二组工具: 3.第三组工具: 4.第四组工具: (二)工具栏使用说明 1.Fiddler修改代理端口: 2.过滤Tunnel to...443请求链 ...
- 元素定位工具ChroPath - Chrome浏览器插件
一 ChroPath的作用 可以自动识别元素定位表达式,对于系统需要定位元素多时,可使用这种方法减轻定位工作量,但需要验证 二 ChroPath的安装 下载ChroPath -> 在谷歌浏览器访 ...
- TensorFlow反向传播算法实现
TensorFlow反向传播算法实现 反向传播(BPN)算法是神经网络中研究最多.使用最多的算法之一,用于将输出层中的误差传播到隐藏层的神经元,然后用于更新权重. 学习 BPN 算法可以分成以下两个过 ...
- 小伙伴们在催更Spring系列,于是我写下了这篇注解汇总!!
大家好,我是冰河~~ 由于在更新其他专题的文章,Spring系列文章有很长一段时间没有更新了,很多小伙伴都在公众号后台留言或者直接私信我微信催更Spring系列文章. 看来是要继续更新Spring文章 ...
- Python 机器学习实战 —— 监督学习(上)
前言 近年来AI人工智能成为社会发展趋势,在IT行业引起一波热潮,有关机器学习.深度学习.神经网络等文章多不胜数.从智能家居.自动驾驶.无人机.智能机器人到人造卫星.安防军备,无论是国家级军事设备还是 ...
- 聊聊推荐系统,FM模型效果好在哪里?
本文始发于公众号:Coder梁 大家好,我们今天继续来聊聊推荐系统. 在上一回当中我们讨论了LR模型对于推荐系统的应用,以及它为什么适合推荐系统,并且对它的优点以及缺点进行了分析.最后我们得出了结论, ...