目录
一、深入理解Python语言
1、计算机技术的演进过程
2、五种编程语言的设计初心(C、Java、C++、VB、Python)
3、Python语言特点(通用性、简洁性、生态性)
4、编程语言种类的发展(机器语言、汇编语言、高级语言、超级语言)
二、实例2:Python蟒蛇绘制
举一反三
三、模块1:turtle库的使用
1、turtle库基本介绍
2、turtle绘图窗体布局
3、turtle空间坐标体系
4、turtle 角度坐标体系
5、RGB色彩体系
四、turtle程序语法元素分析
1、库引用与import
2、turtle画笔控制函数
3、turtle运动控制函数
4、turtle方向控制函数
5、基本循环语句与 range() 函数
6、“Python蟒蛇绘制代码”分析
五、单元小结
- 1946-1981 计算机系统结构时代(35年) 计算能力问题(通过计算设备来提供更充分、充足、好用的计算能力)
- 1981-2008 网络和视窗时代(27年) 人与计算机的交互问题(操作系统视窗),以及计算机与计算机的交互问题(网络)
- 2008-2016 复杂信息系统时代(8年) 各种信息化系统在各种维度上进行整合,数据相关问题(数据接口、数据产生速度、数据存储等等)
- 过渡时期:新计算时代 关心计算、交互、数据、人工智能。计算需求以爆炸形式发展,计算机技术呈指数形式发展
- 2017- 人工智能时代 机器会接管很多基础的数据处理问题和基础功能性问题,要关心人类自身的问题(计算机帮助人类解决这希望达到的功能效果)
- C语言:诞生于计算机系统结构时代,用于写操作系统,适合做计算机底层程序的设计和开发
- Java语言:诞生于网络和视窗时代,面向对象,解决跨平台问题,代码复用更加灵活
- C++语言:既是C语言的演进,又具有面向对象的特点
- VB语言及其衍生的.NET语言:诞生于网络和视窗时代,实现小的桌面窗口,人机交互
- Python语言:发展于复杂信息系统时代,面向编程逻辑,使用第三方库。是计算机时代演进的一种选择
通用语言(适用于普适的计算问题求解的开发)、脚本语言、开源语言、跨平台语言、多模型语言
Python语法:
- 强制可读性(缩进)
- 较少的底层语法元素:不去操作内存和低级接口
- 支持多种编程方式
- 支持中文字符处理
- 语法简洁,C语言代码量的10%
- 生态高产,13万的第三方库,开源开放,快速增长的计算生态,避免重复造轮子,跨操作系统平台
(1)机器语言:
- 一种二进制语言,直接使用二进制代码表达指令
- 计算机硬件(CPU)可以直接执行,与具体CPU型号有关
- 如完成2+3,机器语言表达的是一串01代码,至于这串01代码可以在哪一款CPU上怎样执行、执行结果怎样表达,需要参考每一款CPU的参考手册
(2)汇编语言:
- 将二进制代码直接对应为助记符,利用助记符开展程序设计
- 由于与二进制代码及机器语言一一对应,也与具体的CPU型号有关(在某一款CPU上编写的程序无法在其他CPU上运行)
- 如完成2+3,可能为add 2,3,result,它表示的是将第一个参数2与第二个参数3相加,存到result里,这种add操作符在前、操作数在后的形式,是一种典型的CPU的指令格式形式
前两者不适合编程,适合计算机底层硬件的设计和开发
(3)高级语言:
- 更接近自然语言,同时更容易描述计算问题
- 高级语言代码与具体CPU型号无关,编译后运行(编译器将高级语言编写的源代码编译成计算机能够执行的目标代码,在编译的过程中,编译器参考某一款CPU的具体型号)
- 如完成2+3,result=2+3,即将2+3运算的值赋值给result
第三类即不按照计算机指令格式设计的方式来编写,而用一种人类更友好的方式来编写程序
(4)超级语言:
- 具有庞大计算生态,可以很容易利用已有代码功能
- 编程思维不再是刀耕火种,而是集成开发
- 如完成2+3,result=sum(2,3),只需要将参数给到一个函数里,由函数返回结果。函数可以是自己写的,也可以是别人的生态库
- Python是目前世界上具有最庞大生态的语言,唯一的超级语言
第四类即复用别人写好的代码,利用已有的功能模块完成未知的功能模块
- 使用 IDLE 的文件方式编写代码,并保存为 PythonDraw.py 文件
- IDLE 打开文件,按 F5 运行
#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
举一反三(1)程序参数的改变:
- Python 蟒蛇的颜色:黑色、白色、七彩色...
- Python 蟒蛇的长度:1节、3节、10节...
- Python 蟒蛇的方向:向左走、斜着走...
(2)计算问题的扩展:
- 掌握绘制一条线的方法,就可以掌握各类图像绘制问题
- 图形绘制、五角星绘制、国旗绘制、机器猫绘制...
- turtle库的海龟绘图法
- turtle.setup() 函数调整绘图窗体在电脑屏幕中的布局
- 画布上以中心为原点的空间坐标系:绝对坐标、海龟坐标
- 画布上以空间x轴为0度的角度坐标系:绝对角度、海龟角度(其中海龟坐标、海龟角度都是以海龟当前位置和朝向为准来设计的)
- RGB色彩体系:使用 0-255之间的整数值 或 0-1之间的小数值 来表示色彩,色彩模式之间可切换
turtle(海龟)库是turtle绘图体系的Python实现,是Python的标准库之一,是入门级的图形绘制函数库
Python计算生态 = 标准库 + 第三方库
- 标准库:随解释器直接安装到操作系统中的功能模块
- 第三方库:需要经过安装才能使用的功能模块
- 库 Library、包 Package、模块 Module,统称模块
原理:有一只海龟,其实在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形(海龟由程序控制,可以变换颜色、改变宽度等)
2、turtle绘图窗体布局绘图窗体(在操作系统上表现为一个窗口)——turtle的一个画布空间
在窗口中使用的最小单位是像素,如绘制100长的直线,指的是100像素长的直线
- 屏幕坐标系:左上角(0,0)
- 窗体坐标系:左上角为turtle绘图窗体的坐标原点(startx,starty)
turtle.setup(width,height,startx,starty) 函数:设置启动窗体的位置和大小,有四个参数:宽度,高度(窗体本身的宽度和高度),起始点的x、y方向的坐标(窗体左上角位置的坐标:窗体左上角位置相对屏幕左上角的坐标),其中后两个参数是可选的(不指定的话默认该窗口在屏幕的正中心)。该函数不是必须的,只有当需要控制窗体的大小和在屏幕中显示的位置时,才需要使用
在turtle窗体内部,形成了一个空间坐标体系,包含绝对坐标和海龟坐标两种
- 绝对坐标:turtle(海龟)最开始在画布的正中心,正中心坐标为(0,0) 海龟的运行方向向着画布的右侧(整个窗体的右方向是x轴,上方向是y轴)
利用空间坐标,改变turtle的行进位置。可以使用一些函数,如 turtle.goto(x,y) 让任何位置的海龟去到达某一个坐标位置(x,y)
- 海龟坐标:海龟从它自身的运动来讲,它看到的世界是什么样子。对于海龟来讲,它的当前行进方向,无论这个方向是朝向哪个角度,它都叫前进方向;反方向是后退方向;海龟运行的左侧叫左侧方向,右侧叫右侧方向
使用一些控制海龟的函数,如 turtle.fd(d) 指的是向海龟的正前方向运行,turtle.bk(d) 指的是向海龟的反方向运行,turtle.circle(r,range) 指的是以海龟当前位置左侧的某个点为圆心,进行曲线运行
在空间坐标体系中,运行方向也有一个绝对角度:在空间坐标体系中的 x 轴表示0度或360度,y轴的正方向表示90度或-270度,x轴负方向表示180度或-180度,y轴负方向表示270度或-90度,以此形成了绝对角度的坐标体系
turtle.seth(angle) 函数改变当前海龟的行进角度,它并不在图像中绘制任何信息,只改变行进方向,其中参数 angle 为绝对度数。如果在这样的方位中进一步使用 turtle.fd() ,让海龟继续向前运行,它会朝着当前设定的方向直线运行
此外,为了更好地改变海龟的运行方向,从海龟坐标的角度,对于海龟运行的一个方向,可以使用左右的方式来改变它的运行角度。提供了 turtle.left(angle) 和 turtle.right(angle) 分别让当前的海龟向左或向右去改变运行方向

RGB由三种颜色构成了万物色(红绿蓝三个通道的颜色组合,每个通道的取值范围是0-255的整数或0-1的小数),可以覆盖视力所能感知的所有颜色
turtle库默认采用RGB的小数值来表示颜色,也可以切换使用整数值来表示颜色
turtle.colormode(mode) 改变色彩数值的使用
- mode 为 1.0 时,在之后修改颜色时,需要使用RGB小数值
- mode 为 255 时,在之后修改颜色时,需要使用RGB整数值
库引用:扩充Python程序功能的方式
- 使用 import 保留字完成,采用 .() 的编码风格
import .()
- 使用 from 和 import 两个保留字共同完成对库的引用,在调用函数的过程中就不需要再加 . 的形式
两种方式比较:from import from import * ()
- 使用 import 和 as 保留字共同完成:给调用的外部库关联一个更短、更适合自己的名字,这种方式冗余代码最少,同时又防止了库重名的问题
import as .()
蟒蛇案例中使用的:
把海龟想象为画笔,画笔操作后一直有效(画笔控制函数设置后一直有效,直至下次重新设置),一般成对出现
- turtle.penup() 别名 turtle.pu() 抬起画笔,相当于海龟在飞行。画笔抬起的时候,画笔或海龟运行的轨迹不在画布上形成图案
- turtle.pendown() 别名 turtle.pd() 落下画笔,相当于海龟在爬行。一般来讲需要 penup 让海龟飞到某一个位置,再 pendown,再从那个位置开始绘图
- turtle.pensize(width) 别名 turtle.width(width) 设置画笔宽度,相当于海龟的腰围
- turtle.pencolor(color) 修改画笔颜色,color 为颜色字符串(小写,如:"purple")或 RGB 的三个通道值(小数值或元组值:小数值直接用逗号分隔;元组值指的是将小数值或整数值形成一个独立的元素,外围加括号形成元组类型)
打好画笔的基础,掌握以下四个函数的基本使用:
- penup()
- pendown()
- pensize()
- pencolor(colorstring)、pencolor(r,g,b)、pencolor((r,g,b))
蟒蛇案例中使用的:
控制海龟行进方向:走直线 fd() 或 走曲线 circle()
- turtle.forward(d) 别名 turtle.fd(d) 向前行进,即海龟走直线。参数 d 表示行进距离(单位为像素),可以为负数(倒退行进) 画笔设置后一直有效,直至下次重新设置
- turtle.circle( r,extent=None ) 根据半径r绘制extent角度的弧形 r:默认圆心在海龟左侧r距离的位置,r为负数时,半径就在其右侧r距离的位置。r为海龟行进曲线的半径 extent:绘制角度,默认是360度整圆
蟒蛇案例中使用的:
控制海龟面对的方向,包含绝对角度和海龟角度
方向控制函数只改变海龟的行进方向,并不实际在绘图上让海龟行动。如果希望海龟行动,需要使用运动控制函数让海龟走直线或走曲线
- turtle.setheading(angle) 别名 turtle.seth(angle) 改变行进方向,让海龟转向,参数angle指的是将海龟当前方向改变为某一绝对角度
- 除了绝对角度,turtle提供了在海龟视角下转向的方法,分别使用函数turtle.left(angle) 海龟向左转turtle.right(angle) 海龟向右转 参数angle指的是在左转或右转的方向上旋转的角度
蟒蛇案例中使用的:
循环语句:按照一定次数循环执行一组语句
for in range() # 表示每次循环的计数,0到-1
print() 的逗号输出:print() 输出函数中有一种输出方法,是将你输出的各种信息中间用逗号分隔。输出之后,每输出的字符串之间会增加空格

range() 函数是一个产生循环计数序列的函数,它有两种常用用法:
- range(N) 产生0到N-1的整数序列,共N个,如 range(5) 产生 0,1,2,3,4 五个数
- range(M,N) 产生M到N-1的整数序列,共N-M个,如range(2,5) 产生 2,3,4 三个数
- 最主要的作用:与 for in 搭配产生 range 循环
(1)准备工作
(2)循环,形成Python蟒蛇的关节
(3)Python蟒蛇的脖子部分
(4)Python蟒蛇的头部