数据类型与变量简介
先来看三国人物关羽。
再来看一下《水浒传》中的108将。
在上面的描述中,可以发现在现实世界中,我们用不同的数据类型以及数据组织的方式(数据结构)来描述事物。例如,《水浒传》108将的排名顺序是整数(int类型),关羽的身高是小数(计算机中称为浮点数,float类型),关羽的名字、成就都是文字(计算机中一般用字符串来表示,string类型,简称str),“是否为虚构人物”中的“是”与“否”则是布尔数(bool类型,只取1和0,即True和False)。
为了便于使用这些数据,通常我们会引入变量存储这些数据,实际上变量相当于存储空间的名字,例如,我们把1枚鸡蛋放入鸡蛋托盘中,这枚鸡蛋就是数据,托盘就是存储空间,我们可以在托盘的某个位置贴上标签a,此时a就是存储空间的名字,也就是变量名。之所以称为变量,是因为它的值可以更改,在有些编程语言中,某个变量一旦定义就需要始终存入一种类型的数据,也就是这个位置只能放鸡蛋,而在Python中同一变量可以在再次使用时放入其他类型的数据,比如可以放西红柿。当然,读者会有疑问,这个位置放不下啊?所以系统实际上另外开辟了一块存储空间并将其重新命名为a,然后放入西红柿。
数据:鸡蛋、西红柿 变量:托盘、容器
在Python中,我们可以定义变量name、height,例如:
运行结果是:
在这里简单说明变量的命名和存储规则:变量的作用是用来存储数据的,便于对数据进行操作;声明变量采用直接取名赋值的方法即可,变量的名字有一定的命名规则。
a.只能由字母、数字、下划线组成,且不能以数字开头。
b.严格区分大小写(a和A是两个不同的标识符)。
c.如果标识符由多个单词组成,则每个单词之间用下划线隔开(规范)。
d.命名要见名知义,名字最好和描述的对象有密切的联系。
e.变量名所有字母小写。
f.不能是关键字,或者Python系统提供的函数名。
有了变量,就可以方便地对数据进行操作了,但是仅仅用单一类型数据来描述世界不够方便,例如,关羽这个人物就很难用一种数据来描述,这就需要我们定义新的数据类型,大家可以为计算机设计一下,需要什么样的数据类型呢?
“如果可以把关羽的简介放在一个变量当中,既包含数字,又包含字符串就方便多了。”
确实如此,在Python中,设计了一种非常方便的数据类型:列表(list)。注意此处用中括号“[]”进行标识。定义一个列表类型的变量,它就可以将不同类型的数据都存放在一起。下面的变量GY_Introduction就是一个列表:
输出结果:
“当把关羽的介绍存储好之后,使其可以展示在用户面前,但又不希望他人对其进行修改,列表是否可以做到?”
这就需要元组(tuple)来帮忙。元组是另一种数据类型,类似于列表。元组用“()”标识,内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。操作实例与列表相似。
此处最后一句会报错:TypeError:‘tuple'object does not support item assignment。这表明元组的元素是不可以修改的。
按照顺序读取数据,或者按照序列号来读取数据是列表的特点,例如,现在我们将《水浒传》108将中的3个将领存入列表Shuihu108_info_list中:
如果我们想知道第3个将领是谁,就可以调用第3个元素来查看,即Shuihu108_info_list[2](索引是从0开始的)。
输出结果:
可以看出,列表是一个非常有序的数据集合。然而,有时候数据并非都是排好序的或者本身就没有先后排名顺序,如我们在读书或者玩三国游戏时发现典韦这个人物,需要查找他的相关资料,如果还按照顺序去查找就非常困难了。
“如果能够按照他的名字进行索引就好了!”
采用数据类型中的字典(dictionary,简称dict)就可以达到这一要求。字典是除列表以外Python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移下标存取的。字典用“{ }”标识。字典由索引(key)和它对应的值(value)组成。例如:
输出结果:
小P 说一说
世界多彩多样,让我们用计算机来描述。
1.整数、浮点数和布尔数和我们在数学中的表达很像,不过由于计算机的位数限制,数的大小可不是无穷无尽的。
2.文本数据通常用字符串来表示,下标是访问的重要利器。
3.列表、元组和字典就像一个个的小包裹,把有一定关联的数据组织在一起,如美食清单、英雄榜单。
对以上内容做个总结,在Python 中,能够直接处理的数据类型主要有以下几种:数字,包括整数、浮点数、布尔数等,字符串,列表,元组以及字典。下面对各种数据类型及其操作进行详细说明。