通常,数据类型定义格式,设置数据的上限和下限,以便程序可以正确使用它。但是,Python数据类型不仅仅是这些。在Python中,我们不需要声明一个明确提及数据类型的变量。这个功能被称为动态类型。
Python在运行时直接根据语法确定文字的类型。例如 - 引号标记字符串值的声明,方括号表示字典的列表和大括号。此外,非十进制数将被赋值为整数类型,而具有小数点的将是浮点型。
包括变量,函数,Python中的所有模块都是一个对象。另一个有趣的事实是变量没有类型,而只是Python中的标签。它是与一个类型相关联的价值。因此,同一个变量,标签可以引用不同Python数据类型的值。
以下是Python中常用的重要数据类型列表。我们将用例子来讨论它们中的每一个。
1.Booleans 布尔
2.Numbers 数字
3.Strings 字符串
4.Bytes 字节
5.Lists 清单
6.Tuples 元组
7.Sets 集
8.Dictionaries 字典
从基本到高级的Python数据类型
Python数据
1.布尔类型
布尔是几乎所有编程语言都有的数据类型,Python也是如此。Python中的布尔值可以有两个值 - True或False。这些值是常量,可用于分配或比较布尔值。按照下面给出的一个简单例子:
在Python中创建布尔条件时,我们可以跳过代码中的显式比较。我们仍然会得到相同的行为。
上面的代码将产生与前一个相同的输出。这是因为声明
if condition:
相当于,
if condition == True:
接下来,Python中的表达式也可以产生布尔结果。
例如 -条件块中的表达式将产生一个布尔值。Python创建布尔上下文来评估表达式。
无论表达的是,Python将使用布尔上下文来确定它的真值。由于Python有许多数据类型,因此它们将按照自己的规则操作以在布尔上下文中查找结果。
在某些情况下,布尔常量“True”和“False”也可能作为数字。
从上面的例子可以看出,True是1,False的值是0。在算术运算中它们会变成数字。
2.数字
数字是最重要的Python数据类型之一。与只有整数和浮点数的许多语言不同,Python将复数引入为一种新的数字类型。这里有几点是值得你思考的。
Python中的数字使用以下关键字进行分类。
int,float和complex
Python有一个内置的函数类型() 来确定变量或值的数据类型。
另一个内置函数isinstance()用于测试对象的类型。
在Python中,我们可以在数字后面添加一个“j”或“J”来使它虚构或复杂。
例如:
为了形成一个复数,我们甚至可以使用该类型作为构造函数。看下面的例子。
只要所需的内存可用,Python中的整数没有任何大小限制。
浮点型数字可以精确到15位小数。
注:上面的这个例子中的dig是浮点数中的最大小数位数。
3.字符串
在单引号或双引号内包含的一个或多个字符序列在Python中被视为String。任何字母,数字或符号都可能成为刺痛的一部分。
Python还支持多行字符串,这些字符串在开始时需要三个引号,最后一个需要一个引号。
'多行字符串\ n开始并以\三重引号结尾。''多行字符串\ n开始并以\三重引号结尾。'
而且,Python中的字符串是不可变的。这意味着内存将被分配一次,然后重新使用。
您可以看到第二个字符串与第一个字符串共享相同的地址。
Python有两个流行版本,分别是2.7和3.4。全球大多数程序员都使用他们中的任何一个。Python 2中的字符串默认为非Unicode(ASCII),但也支持Unicode。
另一方面,Python 3字符串都是Unicode(UTF-8)。
Python 2.X中的字符串
Python3.X中的字符串
Python允许使用特殊的方括号语法来分割字符串以提取子字符串。看下面的例子。
4.字节
字节在Python中是不可变的类型。它可以存储范围从0到255的字节序列(每个8位)。与数组类似,我们可以通过使用索引来获取单个字节的值。但我们无法修改这个值。
以下是一个字节和字符串之间的一些区别:
1.字节对象包含一系列字节,而字符串存储字符序列。
2.字节是机器可读的对象,而字符串只是人类可读的形式。
3.由于该字节是机器可读的,所以它们可以直接存储到磁盘中。而字符串首先需要在进入磁盘之前进行编码。
一种场景,其中字节在启用缓冲时执行I / O操作时很重要。例如,我们有一个通过网络连续接收数据的程序。它在等待消息标题和终止符出现在流中之后解析日期。它不断将传入的字节附加到缓冲区。
使用Python字节对象,使用下面的伪代码很容易对上述场景进行编程。
在这篇文章的后面的部分中,我们也将介绍字节和字符串的相互转换。
5.列表
Python列表是一个类似构造的数组,它按顺序存储任意类型的对象。它非常灵活并且没有固定的尺寸。列表中的索引从Python开始为零。
它是各种数据类型的异构集合。例如,列表对象可以将文件存储在文件夹中,或者将公司中的员工数据存储起来等。
Python列语法表
Python中的列表可以通过将元素放在用逗号分隔的方括号内来声明。
列表对象是可变的。Python允许通过赋值以及通过内置列表方法来修改列表或其元素。
嵌套在列表中
有趣的是,一个列表可以包含另一个列表。这样的列表被称为嵌套列表。
切片清单
该列表也是支持切片的Python数据类型之一,就像我们之前使用Strings学到的一样。通过切片运算符[],我们可以从列表中提取元素或一堆元素。
6.元组
元组是由逗号分隔的Python对象的异构集合。这意味着不同数据类型的对象可以共存于一个元组中。元组和列表有些相似,因为它们共享以下特征。
l两个对象都是有序的序列。
l它们支持索引和重复。
l允许嵌套。
l他们可以存储不同类型的值。
Python元组语法
用括号括起来的元素定义一个元组,其括号内用逗号分隔。
示例 - 定义一个元组
示例 - 嵌套元组
示例 - 以元组重复
重要说明:在上述示例中进行切片时,“2”表示从元组中的第三个元素开始(切片索引从0开始)。“4”意味着结束元组中的第五个元素,但排除它。
元组与列表有什么不同?
元组与列表有些不同,因为它们是不可变的。Python在创建后不允许修改元组。我们以后不能添加或删除任何元素。相反,Python期望我们用更新后的元素序列创建一个新的元素。
如果元组具有可变对象作为元素会怎么样?
在这里有个惊喜,元组是禁止修改的。但是Python不会在元素上执行它。这意味着我们可以更新它们,如果它们是可变对象。
为什么需要Tuple作为Python数据类型之一?
这里有几个想法支持元组。
1.Python使用元组从函数返回多个值。
2.元组比列表更轻量级。
3.它作为一个容器填充多个东西。
4.我们可以将它们用作字典中的关键字。
7.设置 Set
在所有的Python数据类型中,该集合是支持像联合,交集,对称差异等数学运算的集合。
一个集合是唯一和不可变对象的无序集合。它的定义从括起括号{}开始,其中的项用逗号分隔。由于该集合从数学中的“Set”派生出来,所以它不能有多个相同元素的出现。
为什么需要Set?
设置类型比列表有明显的优势。它实现了一个高度优化的方法,用于检查容器是否托管特定的元素。这里使用的机制是基于一个称为哈希表的数据结构。
创建一个集合
要创建一个集合,请使用序列或任何可迭代对象调用内置的set()函数。
另一种更简单的方法是指定花括号{}中包含的元素。
冻结的集合
冻结集是传统集合的加工形式。它是不可变的,只支持在不改变上下文中使用的冻结集的情况下执行的方法和运算符。
现在,看一个完整的例子,以突出正常和冻结集之间的区别。
8. Dictionaries字典
Python中的字典是键值对的无序集合。它是Python中的一种内置映射类型,其中键映射到值。这些键值对提供了一种直观的方式来存储数据。
为什么需要字典?
该字典解决了高效存储大型数据集的问题。Python已经使字典对象高度优化以检索数据。
创建一个字典
用于创建字典的Python语法使用大括号{},其中每个项目显示为一对键和值。关键和值可以是任何Python数据类型。
使用键访问字典元素
字典就像一个数据库。在这里,我们不像使用列表那样使用数字来获取特定的索引值。相反,我们用一个键替换它,然后使用键来获取它的值。
字典访问元素的方法
Python公开以下内置的字典功能。
(一)keys() -它将字典中的键分离出来。
(二)values() -它隔离字典中的值。
(三)items() -它以(键,值)对的列表样式返回项目。
修改字典(添加/更新/删除)
由于字典对象是可变的,所以我们可以调用字典对象的添加,更新和删除操作。
有关如何修改字典的更多信息,请参见下面的示例。
本章小结 - Python数据类型
这篇文章涵盖了各种Python数据类型,并尝试用例子解释它们中的每一个。您可以在这里找到所有相关信息,这些信息对您在开发Python程序中可能有用。
如果你今天学到了新东西,那么别介意进一步分享它。并且可以关注我后续一系列Python的相关文章。