1946-1981:计算机系统结构时代-----CPU,操作系统…-----解决计算能力问题
1981-2008:网络和视窗时代------Windows视窗操作系统,互联网-----解决人机交互(通过Windows视窗),机机交互(通过网络)
2008安卓系统诞生
2016年计算机Alphgo打败柯洁。
编程语言也是一个江湖
语言本质:理解计算机系统机构
解决问题:性能,诞生于计算机系统结构时代,是用来写操作系统的语言
语言本质:理解主客体的关系
解决问题:跨平台
语言本质:理解主客体的关系
解决问题:大规模程序
语言本质:理解交互逻辑
解决问题:桌面应用(使用较少了)
语言本质:理解问题的求解
解决问题:各类问题(适合于所有的专业)
-通用语言、强制可读性、较少的底层语法元素、支持多种编程方式、支持中文字符
-语法简洁,代码行数少
-生态高产,超13万个第三方库,避免重复造轮子,提高代码的复用
不可替代的前端技术:HTML/CSS/JS
后端语言候选之一:python
工具决定思维
机器语言:二进制语言,是CPU可以直接执行的语言,但是可读性非常差,与CPU型号有关
汇编语言:将二进制代码直接对应助记符,需要汇编器转换,与CPU型号有关
上述两种语言不适合编程
高级语言:更接近于自然语言,同时更容易描述计算问题,需要编译器或解释器转换成计算机CPU可以执行的二进制代码,与CPU型号无关
超级语言:不仅要接近自然语言,不仅要与CPU型号无关,还要可以粘性整合已有的程序,具备庞大的计算生态
现在关键是怎么复用代码,怎么使用已有的程序模块去实现位置的功能
python是目前具有最庞大计算生态的语言-----超级语言
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,2,3节长度
爬行方向:向左走,斜着走
计算问题扩展
绘制其他形状:五角星,圆形等等
turtle库是turtle绘图体系的python实现。
turtle库是python语言的标准库之一
python计算生态=标准库+第三方库
标准库:随解释器直接安装到操作系统中的功能模块
第三方库:需要经过安装才能够使用的功能模块
-库Librarry,包Package,模块Module,统称为模块
# setup()函数用来设置窗体的大小和位置
turtle.setup(width, height, startx, starty)
# 四个参数:窗体本身的宽度和高度,窗体的显示位置(相对于电脑屏幕左上角的位置)
turtle空间坐标体系包括:绝对坐标和海龟坐标
绝对坐标
turtle.goto(x,y) # 该函数表示海龟从窗体的中心位置出发,到达终点(x,y)的位置
例如:
海龟坐标
绝对角度
海龟角度
RGB指的是红蓝绿三个通道的颜色组合
覆盖视力所能感知的所有颜色
RGB每色取值范围0-255整数或者0-1小数
turtle.colormode(1.0) # 表示下面的代码中RGB使用小数值
turtle.colormode(255) # 表示下面的代码中RGB使用整数值
库引用:扩充python程序功能的方式。
使用import保留字完成,采用.()编码风格
import<库名>
<库名>.<函数名>(<函数参数>)
import的多种使用方法:
1.import<库名>
2.from<库名>import<函数名>
3.from<库名>impot*
<函数名>(<函数参数>)
4.import<库名>as<库别名>
<库别名>.<函数名>(<函数参数>) 给调用的外部库关联一个更短、更适合自己的名字
# 库引用方法一 # 库引用方法三
import turtle from turlte import*
turtle.setup(650, 350, 200, 200) setup(650, 350, 200, 200)
turtle.penup() penup()
turtle.fd(-250) fd(-250)
turtle.pendown() pendown()
turtle.pensize(25) pensize(25)
turtle.pencolor("purple") pencolor("purple")
turtle.seth(-40) seth(-40)
for i in range(4): for i in range(4):
turtle.circle(40, 80) circle(40, 80)
turtle.circle(-40, 80) circle(-40, 80)
turtle.circle(40, 80/2) circle(40, 80/2)
turtle.fd(40) fd(40)
turtle.circle(16, 180) circle(16, 180)
turtle.fd(40 * 2/3) fd(40 * 2/3)
turtle.done() done()
# 虽然方法三必须要再每次都输入库名,但是当程序数量巨大,会造成函数名的重复。
# 库引用方法四(比较简便,且不容易出错)
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() 抬起画笔,相当于海龟在飞行,此时画笔并不在画布上留下线条
turtle.pendown() 画笔落下,让海龟爬行
一般是使用turtle.penup让海龟飞到一个位置,然后再turtle.pendown,使海龟落下,然后让海龟爬行,在画布上面画出图像。
turtle.pensize(width) 设置画笔的宽度,这个宽度相当于海龟的腰围。也可以使用别名turtle.width(width),功能是一样的。
turtle.pencolor(color) color为颜色字符串或r,g,b值。画笔颜色,相当于海龟在涂装
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.forward(d),别名turtle.fd(d) 。向前行进,海龟走直线。d:行进距离,可以是负数,代表海龟倒退。单位是像素
turtle.circle(r, extent=None)。根据半径r绘制extent角度的弧度,r:是海龟行进曲线的半径,圆心默认在海龟左侧r距离的位置上
控制海龟面对的方向,包含绝对角度和海龟角度
turtle.left(angle)。在海龟视角下向左转。
turtle.right(angle)。在海归视角下向右转。angle表示在海龟当前行进方向上旋转的角度。他们改变的是海龟角度
for <变量> in range (<参数>):
<被循环执行的语句>
—<变量>表示每次循环的计数,0到<次数>-1
for i in range(5):
print(i)
# 结果:
0
1
2
3
4
for i in range(5):
print('Hello:', i) # print参数之间加逗号的作用是输出有空格
# 结果:
Hello: 0
Hello: 1
Hello: 2
Hello: 3
Hello: 4
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搭配产生计数循环
import turtle # 引入turtle库
turtle.setup(650, 350, 200, 200) # 设置窗体的大小和位置
turtle.penup() # 使海龟画笔抬起,即使得海龟飞起来
turtle.fd(-250) # 使得海龟后退250像素,即海龟从中心位置移动到窗体左侧的位置
turtle.pendown() # 海龟画笔落下
turtle.pensize(25) # 设置海龟画笔的宽度为25
turtle.pencolor("purple") # 设置海龟画笔的颜色为紫色,也可以设置为其他的颜色
turtle.seth(-40) # 设置绝对角度,使得海龟在当前方向逆时针旋转40度
for i in range(4):
turtle.circle(40, 80) # 在当前方向以40为半径,(圆心在左侧)走一个80度的弧度
turtle.circle(-40, 80) # 在当前方向以40为半径,(圆心在右侧)走一个80度的弧度
# 如此循环四次即可获得蟒蛇的四节身体
turtle.circle(40, 80/2) # 在当前方向以40为半径,(圆心在左侧)走一个40度的弧度,确定好蟒蛇的脖子
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)
turtle.done() # 程序执行完毕后,保持窗体不关闭。需要手动关闭。