从Python到空间分析Arcpy || 1.2.1 数据类型是什么,有哪些

今天开始介绍python中的数据类型,这是python中最基础也是最核心的内容,计划分为4-5个小节来介绍。

总的来说python中的数据类型可以分为 9大类(很容易记的数字)。

数值类型(Number)
数值类型又包括:int 整型 float 浮点型 complex复数类型,常用前2个
布尔型(Bool )
布尔类型在python中是用关键字来定义的,False 和True ,请注意两个单词的第一个字母都要大写,python 语言本身是对大小写敏感的语言,A和a在python中是两个不同的对象,bool 类型的本质是0和1,所以有些文章会把布尔类归类到 number 类型中
字符串(String)
在程序中用成对引号引起来的对象就是字符串,python支持三种引号:单引号’’,双引号"", 三引号(一般用三个双引号""" “”")
列表(List)
Python 可使用[]表示列表,其中的元素可以是任何类型,以顺序存储的方式动态储存数据,列的数据是可以变化的,内容和长度都可以变化。下图是一个列表的图示,在这个列表中包括了4个不同的数据类型,有字符串、bool、int 和file。
同时list 还支撑正索引和负索引,所谓负索就是列表中的对象在列表中的位置序号,可以想象一个list就是一个宾馆,不同的房间号就是不同的索引,房间里面住不同的客人。
从Python到空间分析Arcpy || 1.2.1 数据类型是什么,有哪些

元组(Tuple)
元组和list类似,也支持2种索引,两者其实都是集合数据,不同之处是元组数据定义好了,就不能再修改。为什么有了list还需要tuple呢,是为了方便那些不需要变化的数据,例如定义一个月份元组,这个数据就不需要变化,任何时候都是1到12,同时元组数据的效率也是要高于list数据的。

从Python到空间分析Arcpy || 1.2.1 数据类型是什么,有哪些

字典(Dictionaries)
字典是由一个或者键 key:value值然组成后用 ,逗号分割,整个字典包括在花括号 {} 中 ,格式如下所示:

{
“name”:“xiaomin”,
“age”:12
}

字典的key是字符串,对于有些语言其key值是变量(下面我们会谈到什么是变量),例如JavaScript 语言中的字典对象

{
name:“xiaomin”,
age:12
}

请注意这两个字典之间的区别,还需要注意的会经常用到一种叫JSON的数据格式,其结构跟python中的字典类似,但是其key值只能是双引号的字符串,python中字典的key值可以是单引号的字符串,最后 字典类型数据的内容和长度也是可以修改的。
集合(Set)
由python内置的set() 函数创建的一个无序不重复元素集,可以计算交集、差集、并集等运算,这个概念跟高中数学中的集合相同。常常用set(list) 这样来创建一个集合,多用于list中的查重,如
从Python到空间分析Arcpy || 1.2.1 数据类型是什么,有哪些

上图中,通过set函数将一个包括两个1的list,转换成set类型,会看到结果只保留了一个1。

文件(File)
跟set类型类似,也是由内置的函数创建,创建file 类型的数据需要通过open()函数,使用方式见下栏,file_path是必须要给值的参数,一般是存在电脑硬盘中的某个文件,如C:/我爱学习/python不难.jpg,其中access_mode和buffering 都是可选参数,如果不选择就使用默认的方式创建一个file类型的数据。

open(file_path [, access_mode][, buffering])

None 类型
跟bool值一样,字母None就表示None类型的数据,这种数据通常用来定义变量时候,还不清楚变量的值的时候使用。

上面介绍了python 文件基本的数据类型,下面介绍一下什么是变量,可以理解变量就数学中的x,在程序中通常使用不同名称的x来指向不同的结果,程序的变量在定义(位于等号 = 的左边)的时候必须就要赋值(等号右边必须要有内容,可以是具体的数值,可以是另一个赋了值的变量,也可以是一个函数的调用),没有赋值的变量是后面的程序是不能被调用(变量位于等号 = 的右边)。在python 的可以把不同的类型数据赋值给同一个变量。

python中的合法变量名必须以字母、下画线()开头,后面可以跟任意数目的字母、数字和下画线()。此处的字母并不局限于 26 个英文字母,可以包含中文字符、日文字符等。例如 #name 这样的变量名是不合法的。下面是有关变量的一些操作:

从Python到空间分析Arcpy || 1.2.1 数据类型是什么,有哪些
从Python到空间分析Arcpy || 1.2.1 数据类型是什么,有哪些

第1句代码,使用#name这种方面来定义一个变量,回车后,系统没有任何反应;

第3句代码,直接输入一个前面不存的变量名 name ,系统直接报错,出现NameError提示,这里是我们见到的一个系统报错,请注意其后面的提示内容,编程过程学会看报错提示是一个必备的技能,后面我们会讲到常见的python,及如何处理这些错误;

第4个方框中,我们先让name 等于1,然后又让name等于‘xiaoming’,这样在python是完全没问题的,因为python是一种动态编程语言,对于静态的编程语言如java则是不可以的;

第6个方框,请参考上面的讲解。

在第7个例子中,我们先定义了一个函数 a,然后又定义了一个变量c,同时c指向调用函数a,然后又把这个变量c赋值给了变量b,回车运行程序,则没有报错,也就验证了我们上面提到的一个变量的右边必须要有合法的内容。

OK,本小节关于数据类型总概述先到这里,关于每一个数据类型细节我们会分章节一一展开来讲,不断加深大家对数据类型的理解。

本期的作业,请实践一下上面提到的9种数据类型,每一种数据类型建议操练3遍以上,还是那句话,欢迎截图,截图越多的同学,今后的作业被选中,点评的概率越大。

本系列由解忧数据出品,找数据欢迎来

三w点jieyoudata点com(www.jieyoudata.com),微信公众号:解忧数据
从Python到空间分析Arcpy || 1.2.1 数据类型是什么,有哪些