- 简单介绍语言史
- 库、包、模块,如何使用import、as、from
- turtle库,包括:画布设置、画笔设置、运动控制、方向控制
一、深入理解python
计算机的阶段性发展截至目前大概可以分为四个阶段:
从1946年世界上第一台计算机ENIAC的诞生到1981年是系统结构时代,主要解决的问题是计算机能力。在这个阶段产生了一种以解决计算机性能为目的的计算机语言,即C语言。
1982-2008年,互联网快速发展,进入了网络和视窗时代。计算机的能力已经不再是主要问题,交互式已经成为主角。例如VB就是一种交互式编程语言。
2008年-2016年,复杂信息系统时代,也就是大数据时代,解决数据问题成为热点。
从2016年到现在,则是AI时代,主要是解决人类问题。
其实准确地说,目前还不是真正意义上的AI时代,而是大数据时代向AI时代过渡的一个中间阶段,即新计算时代。
不同的时期由不同的编程语言产生。迄今为止已有成百上千种计算机编程语言,不同的语言由于诞生的时代不同又有不同的特点。
C语言:主要内容包括指针、内存、数据类型。语言的本质是理解计算机系统结构。C语言可以很好地解决计算机性能问题,这也是到现在为止,这门古老的编程语言依然应用广泛的原因。它适合计算机类专业的学习进行学习。
Java语言:主要内容包括对象、跨平台、运行时。语言本质是理解主客体关系。解决问题为跨平台,例如做嵌入式、安卓软件开发等。适合软件专业学生学习。
C++语言:主要内容包括对象、多态、继承。同样作为面向对象的编程语言,它的本质是理解主客体关系。它适合大规模程序。
python语言:主要内容是第三方库和理解编程逻辑。python是一门十分简单的编程语言,很多python入门教材和视频中都会在开头这么介绍python——“人生苦短,我学python”。说它简单,是因为一段很多行的C代码在python中可能几行就解决了。它可能是C语言代码量的十分之一。这并不是说C语言和C++等编程语言并不重要。很多人会在网上吐槽某一种编程语言,个人认为不同语言有它不同的适用范围,学习一种语言,应该了解它的本质,它所能解决的主要问题,这对于学好一门语言并能更好地应用十分重要。我们知道编程语言可以由下至上分为机器语言、汇编语言、高级语言,而python其实是属于高级语言之上的超级语言。所以有时候不同语言之间可能根本就没有可比性。当然我也是个小白,只是在博客里偶尔写写学习笔记罢了,一些观点可能并不正确,欢迎大家的批评指正补充。
二、turtle库
turtle库是干什么的呢?它是一个绘图工具,turtle的英文含义是海龟,我们可以把自己的画笔形象地比喻成一只在画布上四处游动的小海龟,海龟地颜色就是画笔颜色,海龟的大小胖瘦就是画笔的粗细,海龟的朝向就是画笔的方向,海龟的行迹即画出的图像。由此感觉搞程序的人确实都很可爱,并极富想象力的。其实在这里还可以简单介绍一下python的开发者们~还是下次吧。
1、import turtle
因为是python入门,在介绍turtle库之前先简单写一下如何导入库。
python的库大致可以分为三类,标准库、第三方库以及自己写的一些模块。标准库是随着解释器直接安装在操作系统中的功能模块。第三方库是需要经过安装才能使用的功能模块。库Library、包Package、模块Module,统称为模块。关于python的标准库和第三方库请见:python常见的标准库以及第三方库有哪些?
在使用turtle库之前需要我们先import一下,方法如下:
import <库名>
<库名>.<函数名>(<参数列表>)
这种方法在每次使用库里的方法时都需要在函数名前面加一个<库名>.,所以显得有些繁琐。于是提出下面一中方法:
from <库名>import <函数名>
#或者
from <库名>import*
<函数名>(<参数列表>)
很明显这种方法也带来了一个弊端,就是当函数名可能会和我们自己定义的某个函数名称或其他库里的函数名冲突。所以一般只有在代码十分简短的时候才会使用。不推荐在import了多个库时使用。
为了避免上面两个问题,又提出另外一个解决办法:
import <库名> as <库别名>
<库别名>.<函数名>(<参数列表>)
2、画布设置
画布设置的函数为:
turtle.setup(length,width,startx,starty)
其中前两个参数表示画布的长宽,后两个参数表示画布在屏幕中的位置,默认为左上角(0,0)。
3、画笔控制
一般成对出现。
turtle.penup() #别名:turtle.pu() 和 turtle.up()
#功能:抬起画笔,方便移动画笔
turtle.pendown()#别名:turtle.pd() 功能:画笔落下开始作画
turtle.pensize(width) #别名:turtle.width(width)
#功能:控制小海龟的胖瘦,也就是画笔的粗细
turtle.pencolor(color)#功能:设置画笔颜色
'''
其中的color有三种表示方式,即字符串方法,RGB方法,元组法。
字符串方法:turtle.pencolor("red")
RGB方法:turtle.pencolor(1,0,0)
元组法:turtle.pencolor((1,0,0))
'''
turtle.colormode(mode)#设置颜色模式,分为整数255模式和小数(0~1)模式,其中默认为小数模式
turtle.done() #功能:表示画完后窗口不会自动关闭,需要人为关闭。如果不用的话窗口会自动关闭。
4、运动控制
turtle.forward(distance) #别名:turtle.fd(d)
turtle.bk(distance)
其中小海龟的默认位置为画布的正中央。方向向右→,forward指向小海龟的正前方行进,如果参数设为负数,表示小海龟向后倒退走。和bk的区别就是海龟的朝向。
其中r表示半径,圆心默认在小海龟的左方距离r处。如果r设置为负数,则表示圆心在小海龟的右侧。
turtle.circle(r, extence=None)
extence表示转过的角度。
5、方向控制函数
对于方向控制分为绝对方向和海龟方向。绝对方向指在画布正中心建立一个绝对坐标系,逆时针方向为正,顺时针方向为负。与x轴重合方向为0°,与y轴方向重合的方向为90°。海龟方向指建立一个动态坐标系。小海龟中心是原点,小海龟的正前方是极坐标系的方向。
绝对方向:
turtle.setheading(angle) #别名:turtle.setd(angle)
动态方向:
turtle.left(angle)
turtle.right(angle)
先写这么多吧,以后有内容了再补充。欢迎批评指正和补充。