Python是当前最流行的编程语言之一,可应用于Web开发、数据分析、人工智能、科学计算、桌面应用、游戏开发等等多个领域。Python的一大特色就是它具有丰富的程序库(包括内置的库及第三方开发的库),我们不必从头开始编写代码,就可以实现功能强大的应用程序。Python不但功能强大,而且和其他编程语言相比它相对简单,不需要任何先前的编程经验即可学习、使用,对初学者极为友好。下面就让我们一起走进丰富多彩的Python编程世界。
Python的数据类型和数据结构
计算机科学领域有一个著名的公式:计算机程序=数据结构+算法。这一公式表明,数据结构是程序的核心,而算法是解决问题的步骤。所以我们在学习某一编程语言的时候,很有必要先了解一下它的数据类型和数据结构。
Python支持各种数据类型和数据结构,它们具有不同的属性和特性,可以用于不同的任务。下面是Python中常用的数据类型和数据结构的介绍。
Python简单数据类型常见的有以下几种(图16):
1、整数类型(int)
整数类型是Python中最基本的数据类型之一。它代表整数值,可以是正数、负数或零。在Python中,整数没有大小限制。
2、浮点数类型(float)
浮点数类型代表实数值,即包含小数点的数字。在Python中,浮点数也没有大小限制。
3、布尔类型(bool)
布尔类型代表真和假两个值,分别用True和False表示。布尔类型通常用于条件判断和循环控制中。
4、字符串类型(str)
字符串类型代表文本,即一系列字符的序列。字符串用单引号、双引号或三引号表示。三引号可以将多行文本括起来。Python中的字符串是不可变的,也就是说,一旦创建了字符串,就不能修改它的值。
图16 Python中常见的数据类型示例
Python常见的数据结构有以下几种(图17):
1、列表(list)
列表是Python中最常用的数据结构之一,它是一个有序、可变的集合。列表中的元素可以是不同的数据类型。可以使用索引等操作来访问和修改列表中的元素。列表用中括号“[]”表示。
2、元组(tuple)
元组是另一个有序的集合,它是不可变的。元组中的元素可以是不同的数据类型。与列表不同,元组不能修改。元组用小括号“()”表示。
3、集合(set)
集合可以包含不同的元素,它是无序的,没有重复的值。集合可以用于集合运算,例如并集、交集和差集。集合用大括号“{}”表示。
4、字典(dict)
字典是Python中的映射类型,它是无序的键值对集合,没有重复的值。每个键都必须是唯一的,但值可以重复。可以使用键来访问和修改字典中的值。字典也用中括号“{}”表示,只是其中的数据都是键值对形式。
图17 Python常见的数据结构示例
以上只是Python中最基本和最常用的数据类型及数据结构。除此之外,Python还有其他一些数据类型,例如字节类型(bytes)、字节数组(bytearray)、内存视图(memoryview)、范围类型(range)、空类型(none)等等,这里不再一一细述。熟悉这些数据类型和数据结构的特性和用法,可以帮助我们更好地编写Python程序。
Python变量及赋值
如前文所述,计算机程序就是数据+算法。当一个程序运行时,其相关数据被加载到内存中。内存如同一个大仓库,被分割为一个个小库房。当程序需要使用某个库房时,首先要做一个声明,表示要占用该库房,并为其贴上一个标签。用编程术语来说,就是“声明”了一个“变量”。声明变量后,就可以在里面储存各色货物(数据)了,编程术语称之为“赋值”,这一操作通过等号运算符“=”来实现,等号左侧为变量名称,等号右侧即赋予该变量的数据。以下代码显示了Python中的几种赋值方式:
x = 1
x += 1
x, y, z = 1, 2, "Hello!"
x = y = z = 99.9
第1种是基本赋值,使用“=”将值赋给变量。
第2种是增量赋值,将一个值添加到变量的现有值中。假设变量x的初始值为1,那么“x += 2”就将x的值变成了1加2等于3了。这其实是一种复合运算符赋值,如果将等号前的加号换成减号(x -= 2)则x将被赋值为1减2等于“-1”,如果将加号换成乘号(x *= 2)将得到1乘2等于2的值,以此类推。
第3种是多元赋值,如果需要赋值的变量很多,可以将它们放到一行中进行赋值,只需用逗号将每个变量隔开即可,等号后面各变量对应的赋值也同样用逗号隔开。
第4种是链式赋值,适用于将同样一个数据同时赋值给多个变量。
理论上来说变量名可以由任意字符组成,不过Python对变量命名实际还是有一定限制的,规则要求:变量名只能由字母、数字和下划线组成,且不能以数字开头,另外变量名不能是Python关键字。比如“num_01”是合法变量名,而“01_num”则是非法变量名。再比如“my_var_name”是合法的,而带空格的“my var name”则是非法的。另外像“if”、“while”、“for”等Python所保留的关键字是不能用来做变量名的。对于Python变量名还有一点需要注意,就是它是区分大小写的,像“mytime”和“myTime”,这实际上是两个变量。
变量还有一个重要属性,即变量的类型,它规定了变量能够储存什么样的数据。变量类型即上文所介绍的各类数据类型。其实所谓布尔类型(bool)、整数类型(int)、浮点数类型(float)、字符串类型(str)等等,只是一个形象说法,其本质就是定义了该变量占用多大的空间,比如1个布尔变量只占用1位空间,而一个整数变量则需要8位(1字节)空间。其他编程语言,比如C++、Java等,声明一个变量时需要明确声明其数据类型,而Python则省略了这一步,它直接通过所赋值的数据来自动确定该变量的类型,比如“x = 1”自动将x设置为整数类型,而“x = 99.9”则自动将x设置为浮点数类型。
Python表达式和运算符
如果说变量是程序的“词汇”,那么表达式就是程序的“句子”。词汇量再丰富,不把它们组织成句子就毫无意义。Python中的表达式,是指由运算符、操作数(变量和值)和函数调用一起构成的组合,用以计算某种值的的公式。表达式总是会被计算并返回一个结果。
运算符是构成表达式的重要元素,它相当于粘合剂将数据连接到一起,作为算法的“执行者”它对变量和值进行操作。Python中的运算符大致分为以下七大类。
1、算术运算符:这类运算符执行基本的算术运算,如加(+)、减(-)、乘(*)、除(/)、模(%)和取幂(**)。以下代码中,首先声明了a、b两个整数变量并分别赋值,然后对它们依次进行了加、除、模等算术运算,并通过print函数打印出运算结果(见其后的注释语句,下同)。
# Arithmetic operators
a = 5
b = 2
print(a + b