Python学习笔记(二)——Python基本图形绘制
Python学习笔记(二)——Python基本图形绘制
文章目录
- Python学习笔记(二)——Python基本图形绘制
- 不同编程语言的初心和适用对象
- Python蟒蛇绘制
- 五星红旗绘制
这次笔记主要学习了以下内容:
turtle库的绘图窗体、空间坐标体系、角度坐标体系
RGB色彩体系、库引用
画笔控制函数、方向控制函数、运动控制函数
循环语句与range()函数
不同编程语言的初心和适用对象
编程语言 | 学习内容 | 语言本质 | 解决问题 | 适用对象 |
---|---|---|---|---|
C语言 | 指针、内存、数据类型 | 理解计算机系统结构 | 性能 | 计算机类专业 |
Java | 对象、跨平台、运行时 | 理解主客体关系 | 跨平台 | 软件类专业 |
C++ | 对象、多态、继承 | 理解主客体关系 | 大规模程序 | 计算机类专业 |
VB | 对象、按钮、文本框 | 理解交互逻辑 | 桌面应用 | 不确定,少 |
Python | 编辑逻辑、第三方库 | 理解问题求解 | 各类问题 | 所有专业 |
Python语言是通用语言,语法简洁,可读性高,较少的底层语法语言,多种编程方式,支持中文字符,具有计算生态性(可以使用第三方库)。
编程语言的种类:机器语言、汇编语言、高级语言、超级语言(集成开发,如Python)
Python蟒蛇绘制
#PythonDraw.py
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, 180)
turtle.fd(40 * 2/3)
turtle.done()
import 保留字,引入了一个绘图库,名字叫turtle
程序参数的改变:
Python蟒蛇的颜色:黑色、白色、七彩色…
Python蟒蛇的长度:1节、3节、10节…
Python蟒蛇的方向:向左走、斜着走…
turtle库: turtle(海龟)库是turtle绘图体系的Python实现。
turtle绘图体系:1969年诞生,主要用于程序设计入门
Python语言的标准库之一
入门级的图形绘制函数库
标准库: 随解释器直接安装到操作系统中的功能模块
Python计算生态 = 标准库 + 第三方库
第三方库: 需要经过安装才能使用的功能模块
库Library、包Package、模块Module,统称模块
turtle的原理: turtle是一种真实的存在。一只海龟在窗体正中心,在画布上游走。走过的轨迹形成了绘制的图形。海龟由程序控制,可以改变颜色、改变宽度。
turtle的绘图窗体:
- turtle.setup(width, height, startx, stary)
setup() 设置窗体大小及位置,4个参数中后两个参数可选。注意setup()不是必须的。
turtle空间坐标体系: 画布以中心为原点的空间坐标体系。
绝对坐标: 函数goto(x,y)
海龟坐标: 函数circle(radius, angle),bk(d),fd(d)即forward(distance)
turtle角度坐标体系: 画布以空间x轴为0度的角度坐标体系。
绝对角度: 函数seth(angle)即setheading(angle)
海龟角度: 函数left(),right()
上述右边例子,先调用turtle库,海龟起始位置在画布中心,起始方向为水平向右。海龟向左转45,再向前行进150像素,接着右转135度,再向前行进300像素,再左转135度,最后向前行进150像素,得到Z形图。
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 |
seahell(海贝色) | 255,245,238 | 1,0.96,0.93 |
gold | 255,215,0 | 1,0.84,0 |
prink | 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 |
库引用: 扩充Python程序功能的方式。
使用保留字import保留字完成,格式为:
import <库名>
<库名>.<函数名>(<函数参数>)
使用from和import保留字共同完成,格式为:
from <库名> import <函数名>
from <库名> import*
<函数名>(<函数参数>)
#PythonDraw.py
from turtle import*
setup(650, 350, 200, 200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("purple")
seth(-40)
for i in range(4):circle(40, 80)circle(-40, 80)
circle(40, 80/2)
fd(40)
circle(16, 180)
fd(40 * 2/3)
done()
第一种方法不会出现函数重名的问题,第二种方法会出现。函数名字冲突会使程序运行不一致。于是有下述改进方法
使用import和as共同完成,格式为:
import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
此法给调用的外部库关联一个更短、更适合自己的名字,会有很大便利。推荐!!!
#PythonDraw.py
import turtle as t
t.setup(650, 350, 200, 200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
for i in range(4):t.circle(40, 80)t.circle(-40, 80)
t.circle(40, 80/2)
t.fd(40)
t.circle(16, 180)
t.fd(40 * 2/3)
t.done()
turtle画笔控制函数: penup(), pendown(), pensize(), pencolor()
画笔操作后一直有效,一般成对出现
turtle.penup() 别名 turtle.pu() 抬起画笔,海龟在飞行
turtle.pendown() 别名 turtle.pd() 落下画笔,海龟在爬行
画笔设置后一直有效,直到下次重新设置
turtle.pensize(width) 别名 turtle.width(width) 画笔宽度,海龟的腰围
turtle.pencolor(color) color为颜色字符串或RGB值 画笔颜色,海龟在涂装
pencolor(color)的color参数可以有三种形式
颜色字符串 turtle.pencolor(“purple”)
RGB的小数值 turtle.pencolor(0.63,0.13,0.94)
RGB的元组值 turtle.pencolor((0.63,0.13,0.94))
turtle运动控制函数: 控制海龟行进。走直线&走曲线
- turtle.forward(d) 别名 turtle.fd(d) 向前行进,海龟走直线
– d:行进距离,可以为负数
- turtle.circle(r,extent = None) 根据半径r绘制extent角度的弧形
– r:默认圆心在海龟左侧r距离的位置
– extent:绘制角度,默认是360度整圆
注:print(“Hello”,i)输出时逗号,表现为空格
turtle方向控制函数: 控制海龟面对方向。绝对角度&海龟角度
- turtle.setheading(angle) 别名 turtle.seth(angle) 改变行进方向,海龟走角度
–angle:改变行进方向,海龟走角度
turtle.left(angle) 海龟向左转
turtle.right(angle) 海龟向右转
– angle:在海龟当前行进方向上旋转的角度
循环语句: 按照一定次数循环执行的一组语句。格式为:
for <变量> in range (<参数>):
<被循环执行的语句>
<变量>每次循环的计数,0到<次数>-1
range函数: 产生循环计数序列。
– range(N)产生0到N-1的整数序列,共N个
– range(M,N)产生M到N-1的整数序列,共N-M个
turtle.done() 程序运行后不会自动退出
五星红旗绘制
#national flag draw
import turtle
turtle.setup(600,400,0,0)
turtle.bgcolor("red")
turtle.fillcolor("yellow")
turtle.color('yellow')
turtle.speed(10)
# 主星
turtle.begin_fill()
turtle.up()
turtle.goto(-280,100)
turtle.down()
for i in range (5):turtle.forward(150)turtle.right(144)
turtle.end_fill()
# 副星
turtle.begin_fill()
turtle.up()
turtle.goto(-100,180)
turtle.setheading(305)
turtle.down()
for i in range (5):turtle.forward(50)turtle.left(144)
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto(-50,110)
turtle.setheading(30)
turtle.down()
for i in range (5):turtle.forward(50)turtle.right(144)
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto(-40,50)
turtle.setheading(5)
turtle.down()
for i in range (5):turtle.forward(50)turtle.right(144)
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto(-100,10)
turtle.setheading(300)
turtle.down()
for i in range (5):turtle.forward(50)turtle.left(144)
turtle.end_fill()
turtle.hideturtle()
turtle.done()
Python学习笔记(二)——Python基本图形绘制相关推荐
- Python学习笔记|二.Python安装教程
Python 安装教程 Python是跨平台的,它可以运行在Windows.Mac和各种Linux/Unix系统上.在Windows上写Python程序,放到Linux上也是能够运行的. 安装Pyth ...
- python学习笔记(二) 基本运算
python学习笔记(二) 基本运算 1. 条件运算 基本语法 if condition1: do somethings1elif condition2: do somethings2else: do ...
- (10.1)Python学习笔记二
1.在项目工程中要模块化测试一个开发的功能,在测试通过后交付给项目组其他人员继续开发.要保证代码开发的性能和效率以及可扩展性. 2.项目工程中的文件夹分类要功能模块明确清晰,在python中引入某一个 ...
- python学习笔记二
1 正则 1-1 普通字符 s1 = 'asd25454655js6565askJ\nNKJLasd5165123' # 1 匹配单个大写英文字母 obj = re.compile('[A-Z]') ...
- Python学习笔记: Python 标准库概览二
本文来自:入门指南 开胃菜参考:开胃菜 使用Python解释器:使用Python解释器 本文对Python的简介:Python 简介 Python流程介绍:深入Python 流程 Python数据结构 ...
- python课程与c+课程有什么不同-Python学习之二:Python 与 C 区别
引自http://www.lxway.com/181844.htm 从开始看Python到现在也有半个多月了,前后看了Python核心编程和Dive into Python两本书.话说半个月看两本,是 ...
- python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...
image.png 网上现在Python学习资料有很多,但是很杂.很多初学Python的朋友就不知道该怎么去抉择,那些是自己当下所需要的. 刚好朋友是北大的博士,在IT行业也工作八年了.就把他学习Py ...
- 『Python学习笔记』Python中的异步Web框架之fastAPI介绍RestAPI
Python中的异步Web框架之fastAPI介绍&RestAPI 文章目录 一. fastAPI简要介绍 1.1. 安装 1.2. 创建 1.3. get方法 1.4. post方法 1.5 ...
- python学习笔记:python类和对象,文件操作,网络编程
目录 一.python面向对象 1.类和对象的定义 2.单继承 3.多继承 4.成员属性 5.异常 6.@property 二.python文件操作 文件的打开和读写 文件对象接口汇总 三.pytho ...
- 『Python学习笔记』Python实现并发编程(补充joblibpymysql)
Python实现并发编程(补充joblib&pymysql) 文章目录 一. 并发编程知识点 1.1. 为什么引入并发编程 1.2. 如何选择多线程多进程多协程 1.2.1. 什么是CPU密集 ...
最新文章
- 移动UI设计中的7种主要导航模式
- 强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同?
- SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)...
- boost::intrusive::get_parent_from_member用法的测试程序
- PropertyGrid 控件使用方法
- 网站漏洞检测针对区块链网站安全分析
- mysql主从数据库同步问题_聊聊MySQL主从数据库同步的那些事儿
- mac r 导出csv文件_R在Max OS进行导入和导出xlsx文件
- 软件设计师18-系统开发和运行01
- linux远程日志rsyslog服务端和客户端安装(亲测)--自定义接收日志格式
- AUTOSAR架构深度解析
- China Unicom笔面试
- 【spring】JDK动态代理的使用与源码分析
- 通过本地jedis连接远程服务器上的docker redis
- 清华姚班教授:​我见过太多博士生精神崩溃,身体垮掉,一事无成
- 大学生电子设计大赛(内容有点多,细细看看,应该会有收获)
- snowboy嵌入式_jetson nano 安装 snowboy 遇到的问题及处理
- 修改Switch开关按钮的颜色
- Altium Designer 10 (AD10)制作贴片图
- 数学史资料:中国数学