本篇博客介绍下 Python 语言中的数据类型。
Python变量类型
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
变量赋值
Python 中的变量赋值不需要类型声明。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
|
|
多个变量赋值
Python 允许你同时为多个变量赋值。
|
|
可以为多个对象指定多个变量。
|
|
标准数据类型
在内存中存储的数据可以有多种类型。Python定义了一些标准类型,用于存储各种类型的数据。
Python有五个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
python 的所有数据类型都是类,可以通过 type() 查看该变量的数据类型。
数字
数字数据类型用于存储数值,不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
当你指定一个值时,Number对象就会被创建,如下所示:
|
|
可以通过使用del语句删除单个或多个对象的引用,如下所示:
|
|
Python支持四种不同的数字类型:
- int(有符号整型),通常被称为是整型或整数,是正或负整数,不带小数点。
- long(长整型[也可以代表八进制和十六进制]),无限大小的整数,整数最后是一个大写或小写的L。
- float(浮点型),浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示。
- complex(复数),复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
注意:
1、长整型也可以使用小写"l",建议使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。
2、Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj
,或者complex(a,b)
表示, 复数的实部a和虚部b都是浮点型
。
字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。
一般记为:
|
|
python的字串列表有2种取值顺序:
- 从左到右索引,默认从0开始,最大范围是字符串长度-1;
- 从右到左索引,默认从-1开始,最大范围是字符串开头;
Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。
如果要实现从字符串中获取一段子字符串的话,可以使用变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。 例如:
|
|
当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。
加号(+)是字符串连接运算符,星号(*)是重复操作。
字符串格式化
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。 如下示例:
|
|
输出结果为:
|
|
Python字符串格式化符号
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%p | 用十六进制数格式化变量的地址 |
%G | %f 和 %E 的简写 |
Python三引号
python中三引号可以将复杂的字符串进行复制:
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。
|
|
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。
|
|
Unicode字符串
Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:
|
|
引号前小写的"u"表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:
|
|
被替换的 \u0020 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)。
列表
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型,列表是允许更新的。 一个列表如下所示: list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
加号 + 是列表连接运算符,星号 * 是重复操作。
Python已经内置确定序列的长度以及确定最大和最小的元素的方法,列表的数据项不需要具有相同的类型。
元组
元组(tuple)是另一个数据类型,类似于List(列表)。
元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表,元组是不允许更新的。
一个元组如下所示: tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
无关闭分隔符
任意无符号的对象,以逗号隔开,默认为元组,如下示例:
|
|
运行的结果为:
|
|
字典
字典(dictionary)是除列表(List)以外python之中最灵活的内置数据结构类型,是无序的对象集合。
字典(directory)与列表(list)之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是另一种可变容器模型,且可存储任意类型对象。
字典用 { }
标识,字典由索引(key)和它对应的值value组成,字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如下所示:
|
|
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个字典如下所示:
|
|
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
1、不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
2、由于键必须不可变,所以可以用数字、字符串或元组充当,用列表就不行,