2.2 变量和数据类型
2.2.1 变量和赋值
现实生活中,我们在超市买东西的时候,往往都需要使用购物车来存储物品,等到所有的物品都购买完成后,在收银台进行结账即可,如图2-3所示。
图2-3 超市购物车结账
大家试想一下,如果程序中要对多个数据求和,就需要把这些数据先存储起来,再对这些数据进行累加。
在Python中,若要存储数据,需要用到变量。变量可以理解为去超市购物使用的购物车,它的类型和值在赋值的那一刻被初始化。变量的赋值是通过等号来表示的,示例代码如下:
num1 = 100 #num1就是一个变量,就好比一辆购物车,存储的是数据100
num2 = 87 #num2也是一个变量,存储的数据是87
result = num1+num2 #把num1和num2这两辆"购物车"中的数据进行累加,然后放到result变量中
上述示例中,num1、num2、result都是变量,其中,变量num1和num2就好比一辆购物车,它们分别存储的数据是100和87。变量result存储的数据是num1和num2这两辆“购物车”中的数据累计之和。
2.2.2 变量的类型
变量用来存储数据,那么大家有没有想过,我们应该让变量占用多大空间,保存什么样的数据呢?在讲解变量的类型之前,我们先来看一个生活中的例子,例如,我们要运送一台电脑,大卡车和小轿车都可以完成,但是,如果使用大卡车运送一台电脑,显然有点小题大做,浪费了大卡车的空间,如图2-4所示。
同理,如果使用变量存储数据时,为了更充分利用内存空间,我们可以为变量指定不同的数据类型。Python中常见的变量的数据类型如图2-5所示。
图2-4 卡车和轿车运输一台电脑
图2-5 Python变量数据类型
图2-5中罗列了变量的数据类型,下面对这些数据类型进行一个简单介绍。
(1)数字类型
Python中的数字类型包含整型、浮点型和复数类型。示例代码如下:
整 型:0101 83 -239 0x80 299384938832
浮点型:3.1415 4.2E-10 -2.34E-19
复数类型:3.12+1.23j -1.23-98j
(2)布尔类型
布尔类型是特殊的整型,它的值只有两个,分别是True和False。如果将布尔值进行数值运算,True会被当作整型1,False会被当作整型0。
(3)字符串类型
Python中的字符串被定义为一个字符集合,它被引号所包含,引号可以是单引号、双引号或者三引号(三个连续的单引号或者双引号)。字符串具有索引规则,第1个字符的索引是0,第2个字符的索引是1,以此类推。
下面是字符串的示例代码:
Str1='Python'
Str2="Python"
Str3='''Python'''
(4)列表和元组类型
我们可以将列表和元组当作是普通的“数组”,它们可以保存任意数量的任意类型的值,这些值称作元素。不同的是,列表中的元素使用中括号[]包含,元素的个数和值是可以随意修改的。而元组中的元素使用小括号()包含,元素不可以被修改。下面看一下列表和元组的表示方式。
aList = [1,2,'hello'] #这是一个列表
aTuple = (1,2,'hello') #这是一个元组
(5)字典类型
字典是Python中的映射数据类型,由键-值对组成。字典可以存储不同类型的元素,元素使用大括号{}来包含。通常情况下,字典的键会以字符串或者数值的形式来表示,而值可以是任意类型。示例代码如下:
aDict = {"name":"zhangsan","age":18} #这是一个字典
上述代码中,变量aDict是一个字典类型,它存储了两个元素,第1个元素的键为name,值为zhangsan;第2个元素的键为age,值为18。
在Python中,只要定义了一个变量,并且该变量存储了数据,那么变量的数据类型就已经确定了。这是因为系统会自动辨别变量的数据类型,不需要开发者显式说明变量的数据类型了。
如果希望查看变量的类型,可以使用“type(变量的名字)”来实现。示例代码如下:
>>> num = 5.2
>>> type(num) // 使用type函数查看类型
<type 'float'>
上述代码中,变量num存储的值为5.2,系统会自动根据数值判断num变量的数据类型为float。因此,当使用type函数查看变量num的数据类型时,结果为float。