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基本图形绘制相关推荐

  1. Python学习笔记|二.Python安装教程

    Python 安装教程 Python是跨平台的,它可以运行在Windows.Mac和各种Linux/Unix系统上.在Windows上写Python程序,放到Linux上也是能够运行的. 安装Pyth ...

  2. python学习笔记(二) 基本运算

    python学习笔记(二) 基本运算 1. 条件运算 基本语法 if condition1: do somethings1elif condition2: do somethings2else: do ...

  3. (10.1)Python学习笔记二

    1.在项目工程中要模块化测试一个开发的功能,在测试通过后交付给项目组其他人员继续开发.要保证代码开发的性能和效率以及可扩展性. 2.项目工程中的文件夹分类要功能模块明确清晰,在python中引入某一个 ...

  4. python学习笔记二

    1 正则 1-1 普通字符 s1 = 'asd25454655js6565askJ\nNKJLasd5165123' # 1 匹配单个大写英文字母 obj = re.compile('[A-Z]') ...

  5. Python学习笔记: Python 标准库概览二

    本文来自:入门指南 开胃菜参考:开胃菜 使用Python解释器:使用Python解释器 本文对Python的简介:Python 简介 Python流程介绍:深入Python 流程 Python数据结构 ...

  6. python课程与c+课程有什么不同-Python学习之二:Python 与 C 区别

    引自http://www.lxway.com/181844.htm 从开始看Python到现在也有半个多月了,前后看了Python核心编程和Dive into Python两本书.话说半个月看两本,是 ...

  7. python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...

    image.png 网上现在Python学习资料有很多,但是很杂.很多初学Python的朋友就不知道该怎么去抉择,那些是自己当下所需要的. 刚好朋友是北大的博士,在IT行业也工作八年了.就把他学习Py ...

  8. 『Python学习笔记』Python中的异步Web框架之fastAPI介绍RestAPI

    Python中的异步Web框架之fastAPI介绍&RestAPI 文章目录 一. fastAPI简要介绍 1.1. 安装 1.2. 创建 1.3. get方法 1.4. post方法 1.5 ...

  9. python学习笔记:python类和对象,文件操作,网络编程

    目录 一.python面向对象 1.类和对象的定义 2.单继承 3.多继承 4.成员属性 5.异常 6.@property 二.python文件操作 文件的打开和读写 文件对象接口汇总 三.pytho ...

  10. 『Python学习笔记』Python实现并发编程(补充joblibpymysql)

    Python实现并发编程(补充joblib&pymysql) 文章目录 一. 并发编程知识点 1.1. 为什么引入并发编程 1.2. 如何选择多线程多进程多协程 1.2.1. 什么是CPU密集 ...

最新文章

  1. 移动UI设计中的7种主要导航模式
  2. 强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同?
  3. SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)...
  4. boost::intrusive::get_parent_from_member用法的测试程序
  5. PropertyGrid 控件使用方法
  6. 网站漏洞检测针对区块链网站安全分析
  7. mysql主从数据库同步问题_聊聊MySQL主从数据库同步的那些事儿
  8. mac r 导出csv文件_R在Max OS进行导入和导出xlsx文件
  9. 软件设计师18-系统开发和运行01
  10. linux远程日志rsyslog服务端和客户端安装(亲测)--自定义接收日志格式
  11. AUTOSAR架构深度解析
  12. China Unicom笔面试
  13. 【spring】JDK动态代理的使用与源码分析
  14. 通过本地jedis连接远程服务器上的docker redis
  15. 清华姚班教授:​我见过太多博士生精神崩溃,身体垮掉,一事无成
  16. 大学生电子设计大赛(内容有点多,细细看看,应该会有收获)
  17. snowboy嵌入式_jetson nano 安装 snowboy 遇到的问题及处理
  18. 修改Switch开关按钮的颜色
  19. Altium Designer 10 (AD10)制作贴片图
  20. 数学史资料:中国数学

热门文章

  1. 吉利上半年成绩单里的两副面孔
  2. 黑客入门推荐什么书籍
  3. excel自动换行_你会用Excel制作流程图吗?超级强大的功能
  4. MAC 拆分压缩/合并文件
  5. dba_tablespaces and v$datafile中字段plugged_in的验证!
  6. 详解Python爬取房天下的推荐新楼盘
  7. 搜狗百科企业词条编辑规则
  8. 曲面显示器和直面显示器有什么区别 曲面显示器和直面显示器 哪个好
  9. 一起学习LLVM(四):学习llvm-cbe
  10. 2022小能手圣诞树