首页 理论教育 Python基础知识简介附录

Python基础知识简介附录

时间:2023-07-02 理论教育 版权反馈
【摘要】:Python作为最具人气的编程语言,受到了许多人的喜爱。这里并不打算详细讲解Python的语法,主要是帮助大家尽快了解Python,从其他的编程语言经验中转移过来。Python支持面向对象的编程,但它不强制使用面向对象。本书默认使用Python 3,即便是Python 3,不同的版本之间也存在兼容性的问题。下面介绍Python的一些基本语法。此外,Python还内置了确定序列的长度以及确定最大和最小的元素等的方法。列表是Python最常用的数据类型之一。

Python基础知识简介附录

Python作为最具人气的编程语言,受到了许多人的喜爱。它也是人工智能领域应用最广的语言之一,本书中用到的示例以及配套实验代码采用的也是Python。这里并不打算详细讲解Python的语法,主要是帮助大家尽快了解Python,从其他的编程语言经验中转移过来。更多的Python知识、细节,以及Python源代码和安装包,可以直接从Python官网(https://www.python.org)获得。

首先,Python是一门免费的、开源的、通用型脚本编程语言,这就意味着Python程序的执行是需要解释器的。常见的Windows、Linux、Mac OS、Android、iOS等都有对应平台的解释器安装包,可以直接去官网下载,这也使得Python程序可以跨平台运行。如果系统中安装好了Python解释器,可以在命令行输入“python--version”,然后按回车键,会显示系统的Python版本号。注意:在有些系统中,为了使Python 3不与Python 2冲突,需要输入“python3-version”。由于是解释型语句,因此我们可以直接在命令行输入“Python”或“Python3”,然后按回车键,进入Python环境,逐条编写语句,查看执行结果。

Python支持面向对象的编程,但它不强制使用面向对象。Python还支持众多的模块,使得许多复杂的功能借助模块都能轻松完成,比如用于数值和矩阵运算的NumPy软件包、用于绘图的软件包Matplotlib等。

学习Python时还要注意到,Python 2解释器和Python 3解释器在语法上有些细节是不同的,比如:在Python 2中print“Hello AI!”是可以运行的,但在Python 3中会报错,在Python 3中使用print必须加上括号,即print(“Hello AI!”)。当出现报错时,记得仔细看看错误提示信息,它会告诉你哪里出错了、错误原因是什么,甚至告诉你如何更正错误。本书默认使用Python 3,即便是Python 3,不同的版本之间也存在兼容性的问题。还有一点值得注意的是,有些模块包可能是用和你使用的Python版本不兼容的版本编写的,有时也会带来调试错误,这时需要考虑切换版本或者移植。

因为Python安装后只是提供了解释器,所以还需要用其他的文本编辑器来编写程序。很多人喜欢用集成开发环境(IDE,integrated development environment)。这些集成开发环境不仅提供了代码编辑功能,还增加了代码检查、代码格式化等,功能更强大,界面更加友好。比较常用的集成开发环境有PyCharm、Sublime、Anaconda等。如果安装的是Anaconda发行版,还能一次性把常用的库也安装好。

下面介绍Python的一些基本语法。

1.字符

字符串是Python中最常用的数据类型之一。可以使用引号(单引号或双引号都可以)来创建字符串,为变量直接赋值即可。Python不支持单字符类型,单字符在Python中也作为一个字符串使用。在字符串中,反斜杠\用于转义。

Python访问子字符串,可以使用方括号配合冒号来截取字符串,冒号的左边是闭区间,右边是开区间,从0开始,还可以用负数表示从右往左的索引值,-1表示最后一个字符。实例如下:

执行结果为:

2.列表

序列(sequence)是Python中最基本的数据结构之一。序列中的每个元素都可以通过索引来引用,还可以进行切片、加、乘、检查成员等操作。此外,Python还内置了确定序列的长度以及确定最大和最小的元素等的方法。

Python有6个内置序列类型,最常见的是列表(list)、元组(tuple)、字典(dictionary)。

列表是Python最常用的数据类型之一。它以一个方括号定义,内部不同元素间用逗号分隔。列表的数据元素可以是各种数据类型,如下所示:

列表的索引规则与字符串的索引规则一样,列表也可以像字符串那样进行截取、组合等操作。以下代码测试可以直接在命令行输入指令查看结果:

列表的数据类型支持很多的方法,许多集成开发环境中会自动列出支持的方法,可以帮助记忆。常用的方法有:

list.append(x):在列表末尾添加一个元素x。

list.extend(iterable):用可迭代对象的元素扩展列表。

list.insert(i,x):在指定的位置i处插入元素x。

list.remove(x):删除列表中第一个值为x的元素。

list.pop()或list.pop(i):删除列表中指定位置的元素并返回,如果不输入i,则表示删除并返回列表最后一个元素。

list.index(x):返回列表中第一个值为x的元素索引值。

list.count(x):返回列表中元素出现的次数。

list.sort():会将list的元素进行排序,排序后会永久性改变元素的位置,使用sorted函数可以对列表进行临时排序。

list.reverse():可以反转列表中的元素,也是永久性修改元素的位置,但可以通过再次使用恢复。

3.元组

Python的元组与列表类似,不同之处在于元组的元素不能修改,但可以通过重新定义来修改整个元组的内容。元组适合存储不会发生改变的元素,比如存储星期的名字。元组的定义使用小括号,不带括号时,也默认是元组。实例如下:

元组的索引和列表一样,下标索引从0开始,可以进行截取、组合等操作。

4.字典

字典是另一种可变容器模型,也可存储任意类型的对象。字典中存储的基本元素是键值对,key和value用冒号“:”分割,每个键值对之间用逗号分隔,整个字典包括在花括号“{}”中,格式如下所示:(www.xing528.com)

键值对中的键必须是唯一且不可变的,它只能是字符串、数字或元祖,但值可以取任何数据类型。直接对变量用字典的格式赋值,就可以创建字典。以下是一些简单的字典实例:

把相应的键放入方括号可以访问字典里的值,如下实例:

输出结果为:

Python序列切片地址可以写为[开始:结束:步长],以下为一些示例,其中range()函数为Python的内置函数,它返回一个可迭代对象,用来创建整数序列,list()函数可以从可迭代对象中创建列表:

5.数组

Python自己带有一个array模块,通过import array来引用,简单应用中可以使用它。Python中的数组(array)几乎跟列表差不多,但数组不是Python的标准数据类型,而列表是;数组的类型必须全部相同,而列表可以不相同。

在很多情况下,Python中的数组主要还是指NumPy中的ndarray类。它可以作为矩阵使用,NumPy的矩阵运算功能很强大。数组创建时,参数既可以是列表,也可以是元组。 如果在Python中使用NumPy的数组,就需要安装NumPy软件包,命令行下输入:

即可在线安装NumPy软件包。如果使用Anaconda集成开发环境,一般会自动包含这些常用的包。而如果在PyCharm环境下,可参考3.6.2节内容。安装完毕后,可通过以下语句引用NumPy包:

如果该语句不报错,表示安装成功,接下来就可以使用数组了,示例如下:

除了可以用array函数创建数组外,NumPy还有很多其他的函数,可以创建数组。比如np.arange(a,b,c)表示产生从a到b不包括b,间隔为c的一个array。值得注意的是,NumPy数组没有逗号隔开,而列表有,如下所示,可以运行代码进行验证。

shape是维度的意思。在数组代码的调试中会经常查看维度。它的用法如下:

输出结果为:

6.矩阵

matrix是array的一个特例,它只能是二维的,而array可以是多维的,如下例所示:

7.集合

Python中的集合(set)和其他语言中的集合类似,是一个无序不重复元素集。其基本功能包括关系测试和消除重复元素。集合对象还支持union(联合)、intersection(相交)、difference(差)和symmetric difference(对称差集)等数学运算。

set支持x in set,len(set)和for x in set。需要注意的是,作为一个无序的集合,set不记录元素位置或者插入点。因此,set不支持indexing、slicing或其他一些类似序列的操作,集合应用示例如下:

以下的一些示例可以作为练习,了解set在Python中的应用。

8.简单的Python程序

Python中整数是int型,小数是float型,布尔型用true和false。在混合运算中,会自动将整数转为浮点数。和大部分编程语言一样,Python使用嵌套的()来确定运算中的优先级。此外,Python中还内置支持复数,使用后缀j,比如3+4j。

Python的除法运算符号有两个,分别是/和//。/运算得到的结果是浮点数,如果希望像C语言一样只获得商的整数部分,需要使用//。%运算是取余数。在Python中,两个乘法符号**用来计算乘方。Python还支持多重赋值的功能,即同时对多个变量进行赋值,比如以下代码可以计算斐波那契数列:

这里需要注意,Python中组织语句的形式是采用缩进实现的,缩进体现了层次关系,同一块的语句必须使用相同大小的缩进。

同时还要注意,在Python中变量区分大小写,且定义变量时不能以数字开头。

9.面向对象的一些特点

面向对象程序设计(OOP,object oriented programming)把对象作为程序的基本单元。对象包含属性和方法,一个抽象的对象模板称为一个类(class),而通过类创建出来的具体对象则称为实例。类用“class”关键字进行声明,类名通常采用以大写字母开头的单词来表示,后面加上(object),如下:

定义了类以后,就可以创建类的实例了,比如“xiao_zhao=Student()”。定义类时,前后两个下划线的特殊方法__init__用来在创建类时进行初始化操作,相当于构造函数的概念。在类中定义方法时,第一个参数永远是“self”,表示创建的实例自身,并且在调用时不需要传递该参数。

@property装饰器用来把一个方法变成属性调用。

以下例子可以像属性一样访问或者设置学生对象中的分数方法,主代码会显得更简洁。

在查看或者设置学生对象s中的分数score时,就可以直接用s.score=60来代替s.‖set_score(60)方法。同样,可以用a=s.score来代替a=s.get_score()方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈