【2】Python基本图形绘制

深入理解Python语言

计算机技术的演进

  • 1946-1981:计算机系统结构时代——计算能力问题
  • 1981-2008:网路与视窗时代——交互问题
  • 2008-2016:复杂信息系统时代——数据问题
  • 新计算时代
  • 2016-:人工智能时代——人类的问题

编程语言的多样初心

超过600种编程语言。

  • C
    • 学习内容:指针、内存、数据类型
    • 语言本质:理解计算机系统结构
    • 解决问题:性能
    • 适用对象:计算机类专业
  • Java
    • 学习内容:对象、跨平台、运行时
    • 语言本质:理解主客体关系
    • 解决问题:跨平台
    • 适用对象:软件类专业
  • C++
    • 学习内容:对象、多态、继承
    • 语言本质:理解主客体关系
    • 解决问题:大规模程序
    • 适用对象:计算机类专业
  • VB
    • 学习内容:对象、按钮、文本框
    • 语言本质:理解交互逻辑
    • 解决问题:桌面应用
    • 适用对象:不确定
  • Python
    • 学习内容:编程逻辑、第三方库
    • 语言本质:理解问题求解
    • 解决问题:各类问题
    • 适用对象:各类专业

2018年后:
计算机性能不再是解决一般问题的瓶颈。
移动互联网广泛普及。
大数据、云计算、物联网、人工智能等需求日益增大。

深入理解Python语言

Pyhton语言是通用语言。

特点与优势:

语法简洁

  • 强制可读性
  • 较少的底层语法元素
  • 多种编程方式
  • 支持中文字符

提高将近10倍效率。
生态高产

  • 13万第三方库
  • 快速增长的计算生态
  • 避免重复造轮子
  • 开放共享
  • 跨操作系统平台

人生苦短,我学Python

  • C/C++:Python归Python,C归C
  • Java:针对特定开发和岗位
  • HTML/CSS/JS:不可替代的前端技术,全栈能力
  • 其他语言:R/Go/Matlab等,特定领域

Python 语言:

  • 掌握抽象并求解计算问题综合能力的语言
  • 了解产业界解决复杂计算问题方法的语言
  • 享受利用编程将创新变为乐趣实现的语言

“超级语言”的诞生

编程语言的种类

  • 机器语言
    • 二进制语言,直接使用二进制代码表达指令
    • 计算机硬件(CPU)可以直接执行,与具体CPU型号有关
  • 汇编语言
    • 将二进制代码对应助记符
    • 与CPU型号有关,程序不通用,需要汇编器转换
  • 高级语言
    • 接近自然语言,更容易描述计算问题
    • 与具体CPU型号无关,编译后运行
  • 超级语言
    • 具有庞大计算生态,可以很容易利用已有代码功能
    • 编程思维不再是刀耕火种,而是集成开发

Python:唯一的超级语言

实例2:Python蟒蛇绘制

设计蟒蛇基本形状。

【2】Python基本图形绘制_第1张图片
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()

举一反三

  • 改变形状
  • 改变颜色
  • 绘制其他图像

模块1:turtle库的使用

turtle库概述

turtle(海龟)库是turtle绘图体系的Python体现

  • 标准库之一
  • 入门级绘图函数库

标准库:随解释器直接安装到操作系统中的功能模块
第三方库:通过安装才能使用的功能模块
库Library,包Package,模块Module,统称模块

turtle库的原理

turtle(海龟)是一种真实的存在。

  • 有一只海龟,在窗体正中间,在画布上游走
  • 走过的轨迹变成了图形
  • 可以改变大小和颜色

turtle绘图窗体布局

turtle的绘图窗体

turtle的一个画布空间,最小单位为像素。

屏幕坐标系

  • 屏幕左上角坐标为(0,0)
  • 使用turtle.setup(width, height, startx, starty)设置窗体大小及位置,后两个参数可选。后两个参数去掉,窗体在屏幕中居中。

turtle空间坐标体系

绝对坐标

  • 以海龟起始为原点,往上为+y,往右为+x。
  • 使用turtle.goto(x,y)使任意位置的海龟到达(x,y)

海归坐标

  • 前进方向,左侧方向,右侧方向,后退方向。
  • 前进:turtle.fd(d)
    后退:turtle.bk(d)
    左转:turtle.circle(r,angle)

turtle角度坐标体系

绝对角度

  • +x方向:0/360度;+y方向:90/-270度
  • 使用turtle.seth(angle)改变当前海龟行进方向,只改变方向但不行进。angle为绝对度数

海龟角度

  • turtle.left(angle)turtle.right(angle),改变海龟的方向
    例:
import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)
【2】Python基本图形绘制_第2张图片
绘制字母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 黑色

默认采用小数值标时颜色。可切换为整数值
使用turtle.colormode(mode) 可改变模式颜色模式。1.0为小数模式,255为整数模式。

库引用与import

turtle程序语法元素分析

扩充Pyhton程序功能的方式

import <库名>
<库名>.<函数名>(<函数参数>)

使用fromimport保留字共同完成

from <库名> import <函数名>

from <库名> import *
<函数名>(<函数参数>)

不需要加<库名>.
<库名>.<函数名>(<函数参数>)不会出现函数重名的问题。

使用importas保留字共同完成

import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
  • 关联一个更短、更适合的名字,同时避免重名

turtle画笔控制函数

画笔操作后一直有效,一般成对出现

  • turtle.penup()别名turtle.pu(),抬起画笔,海龟在飞行
  • turtle.pendown()别名turtle.pd(),放下画笔,海龟在爬行

画笔设置有一直有效,直到下一次重新设置

  • turtle.pensize(width)别名turtle.width(width),设置画笔宽度,海龟的腰围
  • turtle.pencolor(color)设置画笔颜色,color为颜色字符串或r,g,b值
    • 颜色字符串: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角度的弧形,圆心在海龟左侧。默认角度为360度。半径为负数时,圆心在海龟右侧

turtle方向控制函数

控制海龟面对方向:绝对角度&海龟角度

  • turtle.setheading(angle)别名turtle.seth(angle)改变行进方向,海龟走角度。角度值为绝对角度
  • turtle.left(angle)turtle.right(angle)让海龟向左或向右转。角度为海龟角度
  • 仅改变方向,不会使海龟行进

循环语句与range()函数

循环语句:按一定次数循环执行一组语句

for <变量> in range(<参数>)
    <被循环执行的语句>
  • <变量>表示每次循环的计数,0到次数-1
  • <参数>为次数

range()产生循环计数序列

  • range(N)产生0到N-1的整数序列,共N个数字
  • range(M,N)产生从M到N-1的整数序列,共N-M个数字

turtle.done()绘图完成后窗口不会自动关闭

你可能感兴趣的:(【2】Python基本图形绘制)