深入理解Python语言
计算机发展阶段
1946-1981 计算机结构时代(35年):计算能力问题
1981-2008 网络和视窗时代(27年):交互问题。Windows视窗操作系统
2008年,安卓操作系统诞生
2008-2016 复杂信息系统时代(8年):数据问题。大数据、云计算
2016- 人工智能时代(新计算时代):人类的问题。2017年,柯洁和Alpha Go
不同编程语言的初心和适用对象
语言 | 学习内容 | 语言本质 | 解决问题 |
---|---|---|---|
C | 指针、内存、数据类型 | 理解计算机系统结构 | 性能 |
Java | 对象、跨平台、运行时 | 理解主客体关系 | 跨平台 |
C++ | 对象、多态、继承 | 理解主客体关系 | 大规模程序,如大规模图像处理程序 |
VB | 对象、按钮、文本框 | 理解交互逻辑 | 桌面应用 |
Python | 编程逻辑、第三方库 | 理解问题求解 | 各类问题 |
Python特点与优势
-
语法简洁
1. C代码量的10%
2. 强制可读性
3. 较少的底层语法元素
4. 多种编程方式
5. 支持中文字符 -
生态高产
1. 13W+第三方库
2. 快速增长的计算生态
3. 避免重复造轮子
4. 开放共享
5. 跨操作系统平台
C/C++:Python归Python,C归C
Java:针对特定开发和岗位需求
HTML/CSS/JS:不可替代的前端技术,全栈能力
其他语言:R/Go/Matlab等,特定领域
编程语言的种类
- 超级语言:粘性整合已有程序,具备庞大计算生态,可以很容易利用已有代码功能,如Python
- 高级语言:接近自然语言,编译器/解释器,与CPU型号无关
- 汇编语言:有助记符,汇编器,与CPU型号有关
- 机器语言:代码直接执行,与CPU型号有关
Python计算生态 = 标准库 + 第三方库
- 标准库:随解释器直接安装到操作系统中的功能模块
- 第三方库:需要经过安装才能使用的功能模块
- 库Library、包Package、模块Module,统称模块
turtle库的使用
turtle库基本介绍
- 有一只海龟,在窗体正中心。
- 在画布上游走,走过的轨迹形成了绘制的图形。
- 海龟由程序控制,可以变换颜色、改变宽度等。
turtle绘图窗体布局
- 画布空间,画布最小单位是像素
-
turtle.setup(width, height, startx, starty)
设置窗体大小及画布左上角的位置,非必须
turtle空间坐标体系
- 绝对坐标:
turtle.goto(x, y)
- 海龟坐标:
turtle.circle(r, angle)
turtle角度坐标体系
turtle.seth(angle)
- seth()改变海龟行进方向
- angle为绝对度数
- seth()只改变方向但不行进
RGB色彩体系
- RGB指红蓝绿三个通道的颜色组合
- 覆盖视力所能感知的所有颜色
- RGB每色取值范围0-255整数或0-1小数
turtle的RGB色彩模式
默认采用小数值 可切换为整数值:turtle.colormode(mode)
- 1.0:RGB小数值模式
- 255:RGB整数值模式
turtle程序语法元素
库引用与import
库引用是扩充Python程序功能的方式,使用import保留字完成。
- 用法1:采用<a>.<b>()编码风格
import <库名>
<库名>.<函数名>( <函数参数>)
- 用法2:使用from和import保留字共同完成
from <库名> import <函数名>
from <库名> import *
<函数名>(<函数参数>)
- 用法3:使用import和as保留字共同完成,
import <库名> as <库别名>
<库别名>.<函数名>( <函数参数>)
- 用法比较:
1. 第一种方法不会出现函数重名的问题
2. 第二种方法会出现函数重名问题,带来问题
3. 第三种方法冗余代码量较少,还能防止函数重名
turtle画笔控制函数
画笔设置后一直有效,直至下次重新设置
-
turtle.penup()
别名turtle.pu()
:抬起画笔,海龟在飞行 -
turtle.pendown()
别名turtle.pd()
:落下画笔,海龟在爬行 -
turtle.pensize(width)
别名turtle.width(width)
:画笔宽度,海龟的腰围 -
turtle.pencolor(color)
color为颜色字符串或r,g,b值:画笔颜色,海龟在涂装
turtle运动控制函数
-
turtle.forward(d)
别名turtle.fd(d)
:向前行进,海龟走直线。d: 行进距离,可以为负数 -
turtle.circle(r, extent=None)
:根据半径r绘制extent角度的弧形。r: 默认圆心在海龟左侧r距离的位置;extent: 绘制角度,默认是360度整圆。
turtle方向控制函数
-
turtle.setheading(angle)
别名turtle.seth(angle)
:改变行进方向,海龟走角度。angle: 行进方向的绝对角度。 -
turtle.left(angle)
:海龟向左转;turtle.right(angle)
海龟向右转。angle: 在海龟当前行进方向上旋转的角度。
基本循环语句
按一定次数循环执行的语句:
for <变量> in range(<参数>)
<被循环执行的语句>
# 从0开始打印,打印5次
for i in range(5):
print(i)
range()函数:产生循环计数序列
range(N)
:产生从0到N-1的整数序列,共N个
实例: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()