每个人的Python:数学、算法和游戏编程训练营
上QQ阅读APP看书,第一时间看更新

1.4.2 变量与数据类型

关于变量与数据类型的概念,前面我们提到过,变量用来存储数据,因此定义一个变量就意味着在内存中开辟一块用来存储的空间。Python中的变量本身没有类型,可以将任意类型的数据赋值给变量。

Python与大多数语言一样,符号“=”用来进行变量赋值,“=”也被称为赋值运算符。变量需要有一个名字,变量的命名非常重要,原则上变量的命名要见名知意,例如下面创建的变量:

        # 姓名
        name = "珲少"
        # 年龄
        age = 29

在变量赋值时,Python支持同时对多个变量进行赋值,如下:

        name = first_name = last_name = "Lucy"
        one, two, three = 1, 2, 3

在上面的代码中,变量name、first_name、last_name都被赋值为“Lucy”,变量one、two、three分别被赋值为1、2和3。

Python中有6种标准的数据类型,分别为数值、字符串、列表、元组、集合和字典。

数值类型用来存储数值数据,数值有3种,即整型数值、浮点型数值和复数数值。在编程中,使用最多的数值是整型数值,浮点型用来存储带小数的数值,复数更多用在数学运算中,示例代码如下:

字符串类型是基本的文本数据类型,在Python中,通过索引可以方便地对字符串进行截取。字符串的索引有两种计算方式,从左到右计算时,最左边的索引为0,依次相加。从右向左计算时,最右边的索引为‒1,依次相减。示例如下:

需要注意,进行字符串的截取时,设置的左边边界会被包含,右边边界不会被包含。使用类似的方式也可以通过下标获取到字符串中某个位置的字符,例如:

关于字符串的截取,还有一个非常有意思的用法,我们可以设置截取字符串时参考的步长。假设我们需要将字符串每隔一个字符进行截取,可以这样做:

        print(string[::2]) #以2为步长进行截取,结果为Hlool

Python中的字符串也可以直接进行相加与相乘操作,这在许多编程语言中是做不到的,我们可以直接将两个字符串相加来组成新的字符串,也可以将字符串乘以一个整数实现字符串的复制,例如:

列表用来有序地存储一组数据,Python中使用中括号来创建列表,例如:

        list = [1, "2", 3.14]

列表是一个复合的数据容器,其内部可以存放任意类型的数据。和字符串类似,列表也可以通过下标来获取其中的元素或者对其进行截取,也可以进行加法与乘法运算,示例代码如下:

元组是一种数据容器,其用法和列表很像,元组也是通过下标来进行访问的,可以截取,进行加法运算和乘法运算。不同的是,列表支持修改,通过下标可以修改列表中的元素,元组不能进行修改,请看下面的示例:

集合是Python中提供的一种无序的容器类型,其中的元素无序且不可重复,例如:

        set = {1, 2, 3, 1}
        print(set) #{1, 2, 3}

在数学中,集合可以进行交集、并集、补集、非集等运算,Python中的集合也是一样,示例如下:

        set1 = {1, 2, 3}
        set2 = {2, 3, 4}
        print(set1 | set2) #求并集 {1, 2, 3, 4}
        print(set1 & set2) #求交集 {2, 3}
        print(set1 - set2) #求集合1中包含,集合2中不包含的元素
        print(set1 ^ set2) #求集合1和集合2并集的补集{1, 4}

字典用来进行键值对的存储,在字典中,值可以重复,键必须是唯一的。字典不是通过下标来获取元素的,而是通过键来获取值的,示例代码如下:

        dic = {"a":1, "b": "Hello"}
        print(dic["a"]) #结果为 1

上面介绍的几种基本数据类型在Python中非常重要,它们是组成程序数据结构的基本骨架。