2 Python基本图形绘制

2.1 深入理解Python语言

计算机技术的演进:

1946-1981 计算机系统结构时代(互联网&Windows操作系统诞生)-计算能力问题

1981-2008 网络和视窗时代(08年安卓诞生)-交互问题

2008-2016 复杂信息系统时代(17年alphago击败柯洁)-数据问题

2017+ 人工智能时代 -人类的问题

编程语言的多样初心:

C:重点指针、内存、数据类型,语言本质是理解计算机系统结构,用于解决性能问题,适合计算机类专业;

C++:重点对象、多态、继承,语言本质是理解主客体关系,用于解决大规模程序,适合计算机类专业;

Java:重点对象、跨平台、运行时间,语言本周是理解主客体关系,用于解决跨平台问题,适合软件类专业;

Visual Basic:重点对象、按钮、文本框,语言本质是理解交互逻辑,用于桌面应用开发,适用对象不确定;

Python:重点编程逻辑、第三方库,语言本质是理解问题求解,适合解决各类问题,适合所有专业;

不同编程语言所处的时期不同,初心和历史使命也不同;

Python特点:语言简洁 + 生态高产 ==> 效率10x

2.2 实例2:Python蟒蛇绘制

#PythonDraw.py

Import  turtlre

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.circlr (40, 80/2)

Turtle.fd (40)

Turtle.circle (16, 100)

Turtle.fd (40 * 2/3)

Turtle.done ( )

2.3 turtle库的使用

海龟库是turtle绘图体系的python实现,是python的标准库之一;

python计算生态 = 标准库(随解释器直接安装到操作系统的功能模块) + 第三方库(需要经过按照才能使用的功能模块)

库Library、包Package、模块Module,统称模块;

Turtle.setup(width,height,startx,starty)设置绘图窗体大小及位置,并不是必须的,四个参数中后两个可选;

空间坐标体系:绝对坐标(海龟一开始的位置)、海龟坐标(对于海龟视角而言的);

Turtle.goto(x,y)让海龟移动到某绝对坐标;

Turtle.bk(d)后退;

Turtle.fd(d)前进;

Turtle.circle(r,angle)以某点为圆心画曲线;

角度坐标体系:绝对角度(x轴正方向为0/360°,y轴正方向为90/-270°),海龟角度(还是相对海龟而言);

Turtle.seth(angle)只改变海龟方向但不前进,其中angle为绝对度数;

# turtle.seth(45)让海龟转到45°角方向上;

Turtle.left(angle)/Turtle.right(angle)让海龟向左/右侧旋转相应角度;

RGB色彩体系:红蓝绿三个通道的颜色组合,每色取值范围0-255整数或0-1小数;

white:255,255,255;

black:0,0,0;

默认采用小数值,可切换为整数值——turtle.colormode(mode)当mode=1.0使用RGB小数值模式,mode=255时为整数模式;

2.4 turtle程序语法元素分析

库引用:扩充Python程序功能的方式,使用import保留字完成,采用<库名> . <函数名>(函数参数)编码风格;

import更多用法(1)

使用from和import保留字共同完成 即 from<库名> import <函数名> 或 from<库名>import*,这样在使用函数时就不用重复使用库名;

更改后:

#PythonDraw.py

from  turtlre 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)

circlr (40, 80/2)

fd (40)

circle (16, 100)

fd (40 * 2/3)

done ( )

对于不省略库名的方法,所使用的函数是库中的函数,不会出现函数重名问题。而省略库名时,所使用的函数相当于是独立的,有可能会和用户自定义的某个函数重名,引起冲突;

import更多用法(2)

使用import和as保留字共同完成 即 import<库名> as <库别名>

<库别名> . <函数名>

可以给调用的外部库关联一个更短,更方便的名字;

更改后:

#PythonDraw.py

import  turtlre 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.circlr (40, 80/2)

T.fd (40)

T.circle (16, 100)

T.fd (40 * 2/3)

T.done ( )

既避免了代码量冗余,又不会出现函数重名问题;

画笔控制函数:操作后一直有效,一般成对出现;

Turtle.penup()别名turtle.pu()即抬起画笔,turtle.pendown()别名turtle.pd()即落下画笔;

Turtle.pensize(width)别名turtle.width(width)即设置画笔宽度;

Turtle.pencolor(color)设置画笔颜色,其中color可以写作颜色字符串 # “purple”,或RGB小数值 # 0.63,0.13,0.94  或RGB元组值 #(0.63,0.13,0.94);

turtle运动控制函数:控制海龟行进方向(直线&曲线);

使用turtle.circle(r,angle)时默认圆心在海龟左手边(海龟视角) r 距离的位置上;

turtle方向控制函数:

turtle.setheading(angle)别名turtle.seth(angle),将海龟朝向改为某一绝对角度;

Turtle.left(angle)和turtle.right(angle)是在海龟方向上旋转角度;

循环语句for in 结构:

For <变量> in range (<参数>):

<循环执行的语句>

其中 变量 表示每次循环的计数(0~次数-1),参数 表示循环次数;

# for i in range(5):

print(i)

得到

0

1

2

3

4

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