【Python基础学习笔记】week02
Python基本图形绘制
2.1深入理解Python语言
1946年第一台计算机诞生
1946-1981:计算机系统结构时代 计算能力
1981-2008:pc->移动 网络和视窗时代 交互问题
2008-2016:计算机打败围棋高手 复杂信息系统时代 数据问题
期间:新计算时代
2016-:人工智能时代 人类的问题
Python语言:通用语言
Python特点和优势:
- 强制可读性
- 较少的底层语法元素
- 多种编程方式
- 支持中文字符
- C代码量的10% 语法简洁
- 13w第三方库
- 快速增长的计算生态 生态高产
机器语言:二进制语言,代码直接执行,与具体的CPU型号有关
汇编语言:二进制代码->助记符,与具体的CPU型号有关 eg add2,3 result
高级语言:更接近自然语言,高级语言代码与具体的CPU型号无关
超级语言:粘性整合已有程序,庞大计算生态
2.2 "Python蟒蛇绘制"问题分析
蟒蛇图示
蟒蛇代码
import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 100)
turtle.fd(40*2/3)
turtle.done()
2.3 turtle库的使用
turtle(海龟)库 入门级图形绘制 标准库
库 包 模块
turtle原理:海龟走过的线
- turtle的绘图窗体
turtle.setup(width, height, startx, starty)
#参数分别为 宽度 高度 起始点位置
4个参数的后两个可选
setup()设置窗体大小及位置
setup()函数不是必须的
【eg1】 turtle.setup(800, 400, 0, 0)
从窗口的左上角开始绘制图形
【eg2】 turtle.setup(800, 400)
从窗口的中心位置开始绘制图形
- turtle空间坐标体系
绝对坐标 & 海龟坐标
绝对坐标 画面的中间为坐标原点,十字交叉,水平x轴,垂直y轴
turtle.goto(x, y)
– 使用实例
import turtle
turtle.goto(100, 100)
turtle.goto(100, -100)
turtle.goto(-100, -100)
turtle.goto(-100, 100)
turtle.goto(0, 0)
turtle.done()
海龟坐标 向前的方向为前进方向,反方向为后退方向
海龟运行的左侧为左侧方向,右侧为右侧方向
turtle.fd(d) #海龟向海龟的正前方向前进
turtle.bk(d) #向海龟的反方向运行
turtle.circle(r, range) #以左侧的某一点为圆心进行曲线运动
- turtle角度坐标体系
- 绝对角度:x轴 0 or 360 度;y轴 90 or 270 度
turtle.seth(angle)
#改变海龟的行进方向,该函数只改变方向但不行进,angle为绝对度数
turtle.seth(45)
- 海龟角度
turtle.left(angle) & turtle.right(angle)
#分别让当前的海龟向左或向右去改变运行方向
- RGB色彩体系
红绿蓝 取值 0-255整数或0-1小数
白色 (255, 255, 255) - (1, 1, 1)
黑色 (0, 0, 0)
turtle默认使用小数值,可以切换为整数
turtle.colormode(mode)
#改变颜色模式
#mode值 : 1.0:小数; 255:整数
2.4 turtle程序语法元素分析
库引用与import
<a>.<b>() 编码风格
import <库名>
<库名>.<函数名>(<函数参数>)
#不会出现函数重名的问题
使用from与import保留字共同完成
from <库名> import <函数名>
from <库名> import *
使用方法:<函数名>(<函数参数>)
可能会出现函数名冲突
import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
turtle画笔控制函数
海龟为画笔,画笔操作后一直有效,一般成对出现
#别名
turtle.penup() -> turtle.pu()
#抬起画笔,海龟在飞行
turtle.pendown() -> turtle.pd()
#落下画笔,海龟在爬行
画笔设置后一直有效,直至下次重新设置
#别名
turtle.pensize(width) -> turtle.width(width)
#画笔宽度,海龟的腰围
turtle.pencolor(color)
#color为颜色字符串或r,g,b值 画笔颜色,海龟在涂装
eg.
【eg】 紫色
#颜色字符串:
turtle.pencolor("purple")
#RGB的小数值:
turtle.pencolor(0.63, 0.13, 0.94)
#RGB的元组值:
turtle.pencolor((0.63, 0.13, 0.94))
turtle运动控制函数
fd() circle()函数
turtle.forword(d) -> turtle.fd(d)
#向前行进,海龟走直线;d行进距离,可以为负值
turtle.circle(r, extent=None)
#根据半径r绘制extent角度的弧形
#r半径,extent绘制的弧度 默认圆心的距离海龟左侧r距离的位置上
#[eg]
turtle.circle(100)
#在海龟的左侧,以100为半径,绘制一个圆形;没有第二个参数,默认绘制圆形
turtle.circle(-100, 90)
#海龟向他的右侧,半径为r的方位进行曲线运动,绘制弧度为90度,形成1/4圆弧
turtle方向控制函数
turtle.setheading(angle) -> turtle.seth(angle)
#改变海龟行进方向,海龟走角度
#angle,将海龟当前的方向改变为绝对的角度
#参考系为绝对坐标
turtle.left(angle)
turtle.right(angle)
#angle海龟左转或右转的角度
循环语句与range()函数
for <变量> in range(<参数>)
<被循环执行的语句>
range(5) 0 1 2 3 4
print(‘hello’,1)中间有空格
range(n) 产生0到n-1的整数序列,共n个
range(m, n) 产生从m到n-1的整数序列,共n-m个
代码分析
import turtle
#引入海龟绘图体现
turtle.setup(650, 350, 200, 200)
#使用setup设置窗体
turtle.penup()
#画笔抬起
turtle.fd(-250)
#倒退250像素
turtle.pendown()
#海龟落下
#改变原点
turtle.pensize(25)
#画笔宽度
turtle.pencolor("purple")
turtle.seth(-40)
#改变海龟方向为-40度
for i in range(4):
turtle.circle(40, 80)
#以左边40像素为圆心,绘制80度的圆弧
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
#脖子
turtle.circle(16, 100)
turtle.fd(40*2/3)
#头部
turtle.done()
#程序不会退出,需要手工退出
2.5函数整理
turtle模块中的函数小结
#先引入模块
import turtle
函数名 | 作用 |
---|---|
turtle.goto(x, y) | 从海龟当前位置到(x, y)的路线 |
turtle.penup() 别名:turtle.pu() | 抬起画笔 |
turtle.pendown() 别名: turtle.pd() | 落下画笔 |
turtle.pensize(width) 别名: turtle.width(width) | 画笔宽度 |
turtle.pencolor() | 画笔颜色 |
turtle.forword(d) 别名:turtle.fd(d) | 向前行进 |
turtle.circle(r, extent=None) | 绘制圆弧 |
turtle.setheading(angle) 别名:turtle.seth(angle) | 设置海龟角度 |
turtle.left(angle) | 海龟左转 |
turtle.right(angle) | 海龟右转 |