如何理解Python数据类型以及何时使用它们?

2021年11月20日16:07:22 发表评论 1,008 次浏览

介绍

每种编程语言都有内置的数据类型,包括 Python。数据类型提供有关不同类型变量的信息并指示编程流程。其他库通常会创建它们的数据类型,例如Pandas 中的DataFrames 。

选择正确的数据类型取决于手头的问题。最好从了解 Python 的基本数据类型及其用例开始。

如何使用Python数据类型通过本教程中的示例了解不同的 Python 数据类型以及何时使用它们。

Python 中的基本数据类型

数据类型是告诉编译器(或翻译)程序员打算如何使用数据的特性。数据类型一般分为两大类,区别在于定义后数据是否可变:

1.不可变的。分配后不可更改的数据类型。

2.可变的。分配后可更改的数据类型。

注意:改变不可变类型的数据时,变量 ID 会发生变化,而可变类型在更改后保留相同的变量 ID。使用内置函数检查变量 ID id(<variable>)

Python如何使用数据类型?变量存储不同类型的数据。创建特定数据类型的变量会创建数据类型类的对象。Python 解释器在创建变量时会自动假定一个类型。

如何理解Python数据类型以及何时使用它们?

使用内置type()函数找到任何对象的数据类型。输出显示给定对象的类名称。

数字类型

数字类型对象表示数字值。它们分为三个亚组:

  • 整数
  • 浮点数字
  • 复数

整数

Python数据类型用法示例:整数值属于int类。具体来说,整数表示没有小数的正整数或负整数。整数的一些示例包括:

print(0, "is", type(0))
print(-1, "is", type(-1))
print(10, "is", type(10))
print(1234567890, "is", type(1234567890))
如何理解Python数据类型以及何时使用它们?

整数具有无限的精度。长数和短数之间没有区别。长度取决于计算机内存:

very_long = 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
print("Long numbers are type", type(very_long), ", such as this one:", very_long)
如何理解Python数据类型以及何时使用它们?

二进制、八进制和十六进制数的基数也计算为整数:

print(0b1010, "in base 2 is 1010 and the type is ", type(0b1010))
print(0o12, "in base 8 is 12 and the type is ", type(0o12))
print(0xA, "in base 16 is A and the type is ", type(0xA))
如何理解Python数据类型以及何时使用它们?

打印值会自动转换为其十进制形式。

注意:使用 Python 编写代码的一项关键技能是使用注释的能力。注释通常用于留下有关代码功能的注释。但是,它们也可用于禁用部分代码。了解如何在 Python 中有效地进行注释。

浮点数字

Python如何使用数据类型?Python 中的浮点数是用小数点定义的数字。类类型是float。例如:

print(0.1, "is", type(0.1))
print(-1.0, "is", type(-1.0))
print(10., "is", type(10.))
print(123.4567890, "is", type(123.4567890))
如何理解Python数据类型以及何时使用它们?

在内部,它们是二进制分数,这意味着该数字近似于十进制对应物。实际值和近似值之间的差异通常是不明显的。对值进行四舍五入会产生准确的数字。例如:

如何理解Python数据类型以及何时使用它们?

或者,带有字符E后跟数字的数字表示科学记数法:

print(1E2, "is", type(1E2))
print(1e2, "is", type(1e2))
如何理解Python数据类型以及何时使用它们?

科学记数法也属于浮点数类。语法接受小写e和大写E

1.79×10 308之后的浮点数计算为无穷大。最小的非零数是 5.0×10 -324。较小的数字计算为零:

如何理解Python数据类型以及何时使用它们?

这些值对应于 64 位双精度值。

复数

Python数据类型用法示例:复数常用于数学科学。Python 为复数提供了一个名为complex 的类。要写复数,请使用:

<real part> + <complex part>j

或者,你可以省略实部:

<complex part>j

例如:

print(1+2j, "is", type(1 + 2j))
print(2j, "is", type(2j))
如何理解Python数据类型以及何时使用它们?

输出显示数据属于复杂类。

注意:查看我们的SciPy 教程,了解如何使用 SciPy 库在 Python 中进行科学计算。

序列类型

如何使用Python数据类型?序列类型有助于表示存储在单个变量中的序列数据。Python 中使用了三种类型的序列:

  • 细绳
  • 列表
  • 元组

当涉及到可变性和顺序时,各个序列类型彼此不同。

字符串

字符串是表示 Unicode 字符的字节序列。Python 中的字符串类型称为str

Python如何使用数据类型创建字符串

根据需要的用例和字符,有四种不同的方法来创建字符串。它们根据分隔符以及字符串是单行还是多行而有所不同。

1. 使用双引号分隔符创建字符串:

print("This is a string with 'single' quotes delimited by double quotes")

用双引号分隔的字符串对于包含单引号或撇号的字符串很有帮助。或者,你可以使用转义字符:

print("Thanks to the \"\\\" character, we can use double quotes inside double quote delimiters")
如何理解Python数据类型以及何时使用它们?

该示例还显示了如何在字符串中显示反斜杠字符。

2. 使用单引号分隔符创建字符串:

print('This is a string with "double" quotes delimited by single quotes')

当字符串包含双引号时,由单引号分隔的 Python 字符串是有效的。另一种方法是使用转义字符。例如:

print('Thanks to the \'\\\' character, we can use single quotes inside single quote delimiters')
如何理解Python数据类型以及何时使用它们?

有两种方法可以分隔多行字符串。

a) 使用三重单引号分隔符创建多行字符串:

print('''This is a multiline string
with 'single', "double" and """triple-double""" quotes
delimited with triple single quotes''')
如何理解Python数据类型以及何时使用它们?

如果字符串同时包含单引号、双引号、三重双引号或以双引号结尾,则使用三重单引号来分隔字符串。

b) 使用三重双引号分隔符创建字符串:

print("""'This is a multiline string
with 'single', "double" and ```triple single``` quotes
delimited with triple double quotes'""")
如何理解Python数据类型以及何时使用它们?

对包含单引号、双引号、三重单引号的字符串或以单引号结尾的字符串使用三重双引号定界符。

Python数据类型用法示例访问字符串的元素

Python 中的字符串是字符数组。要访问单个元素,请使用索引:

s = "phoenixNap"
s[0], s[2], s[-1]
如何理解Python数据类型以及何时使用它们?

要访问字符串的一部分,请使用切片:

print(s[0:7])
print(s[-3:])
如何理解Python数据类型以及何时使用它们?

访问索引 0 处的第一个元素。从 -1 开始向后计数访问序列的末尾。

由于字符串是数组,你可以使用for循环遍历所有字符:

for letter in s:
     print(letter)
如何理解Python数据类型以及何时使用它们?

该代码将一个字符串的所有字母一个一个地打印出来。

列表

Python 列表是一个有序的可变数组。列表允许重复元素而不管它们的类型。在列表中添加或删除成员允许在创建后进行更改。

创建列表

使用方括号在 Python 中创建一个列表,用逗号分隔各个元素:

A = [1, 2, "Bob", 3.4]
print(A, "is", type(A))
如何理解Python数据类型以及何时使用它们?

通过向列表添加列表来制作嵌套列表:

B = [A, 2, 3, 4]
print(B, "is", type(B))
如何理解Python数据类型以及何时使用它们?

由于 Python 列表是可变的,它们允许在以后创建空列表和附加元素,以及向现有列表添加或删除成员。

访问列表的元素

列表是一系列元素。使用索引符号访问成员,其中第一个元素位于索引 0:

A[0], A[3], A[1]
如何理解Python数据类型以及何时使用它们?

切片列表返回两个索引之间的所有元素:

A[0:2]
如何理解Python数据类型以及何时使用它们?

负索引也是可能的:

A[-1]
如何理解Python数据类型以及何时使用它们?

-1索引打印列表的最后一个元素。负索引对于导航到一长串成员的末尾特别有用。

元组

Python如何使用数据类型?Python 元组是一组不可更改的有序元素。一旦将元组存储到变量中,就不能添加或删除成员。元组允许任何类型的重复成员。

创建一个元组

Python数据类型用法示例:要创建元组,请使用标准圆括号,用逗号分隔各个元素:

t = ("bare", "metal", "cloud", 2.0, "cloud")
print(t, "is", type(t))
如何理解Python数据类型以及何时使用它们?

通过将元组添加到元组来创建嵌套元组:

c = (t, "computing")
print(c, "is still", type(t))
如何理解Python数据类型以及何时使用它们?

要使用单个元素创建元组,请在第一个元素后使用逗号:

p = ("phoenixNap")
n = ("phoenixNap",)
print("p is", type(p), "whereas n is", type(n))
如何理解Python数据类型以及何时使用它们?

没有逗号,变量是一个字符串。

使用没有元素的圆括号创建一个空元组。尽管由于元组是不可更改的,因此这似乎是多余的,但空元组有助于表明在某些用例中缺少数据。

如何使用Python数据类型访问元组的元素

元组支持索引符号。使用方括号和元素的索引访问单个元素:

t[0], t[1], t[-1]
如何理解Python数据类型以及何时使用它们?

负索引允许访问列表末尾的元素。

要访问元组的一部分,请使用切片符号:

t[2:4]
如何理解Python数据类型以及何时使用它们?

输出显示了元组的第三个和第四个元素。

布尔类型

布尔数据类型属于bool类并确定表达式的真值。布尔类型的对象评估为TrueFalse

print(type(True))
print(type(False))
如何理解Python数据类型以及何时使用它们?

布尔值是整数值的子类型。在两种情况下,使用 True 和 False 检查整数 1 和 0 的真值都会返回 true:

print(True == 1)
print(False == 0)
如何理解Python数据类型以及何时使用它们?

值的数据类型不同。True 和 False 都是布尔类型,而 1 和 0 是整数类型。

套装类型

Set 数据类型是set类的一部分。它将数据集合存储到单个变量中。集合是无序的,不允许通过索引访问单个元素。任何重复的值都将被忽略。

要创建集合,请使用大括号表示法并用逗号分隔各个元素:

s = {1, 2, 3, 3, 3, 4}
print(s, "is", type(s))
如何理解Python数据类型以及何时使用它们?

注意数据的多个实例消失了。

映射类型

映射数据类型由 Python 字典表示。字典是具有属于dict类的键和值对的数据集合。

要创建字典,请使用大括号表示法并定义键值对。例如:

d = {"articles":10,
     "cost":2.2,
     True:"Okay!",
     2:"One"}
print(d, "is", type(d))
如何理解Python数据类型以及何时使用它们?


键值对接受任何数据类型。要访问字典中的值,请使用键作为索引:

print("The cost is:", d["cost"])
如何理解Python数据类型以及何时使用它们?


字典在存储链接数据对时会派上用场。

在 Python 中管理数据类型

如何使用Python数据类型?在编写冗长而复杂的程序时,管理不同的数据类型成为解决编程问题的一个关键方面。不可能完美地预测所需的数据类型。但是,了解如何检查或更改数据类型对于编程至关重要。

检查数据类型

Python数据类型用法示例:每个变量都有一个数据类型,使用内置函数type() 进行检查

print(type(1))
print(type(1.))
print(type(1+0j))
print(type("1"))
print(type([1]))
print(type((1,)))
print(type({1}))
print(type({1:1}))
如何理解Python数据类型以及何时使用它们?

上面的示例显示了使用各种数据类型写入数字 1 的几种方法。函数type()也适用于变量。

设置数据类型

Python如何使用数据类型?将值写入变量时,Python 中的数据类型会自动设置。每个数据类型的类构造函数也允许设置变量的特定数据类型:

数据类型构造函数
字符串str(<value>)
整数int(<value>)
浮点float(<value>)
复杂的complex(<value>)
列表list((<value>, <value>))
元组tuple((<value>, <value>))
布尔值bool(<value)
集合setset((<value>, <value>))
字典dict((<key>=<value>, <key>=<value>))

转换数据类型

某些 Python 数据类型可以转换为其他数据类型。有两种方法可以转换变量类型:

  • 明确的。数据类型的类构造函数也转换数据类型。
  • 含蓄地。如果可能,Python 解释器会自动转换数据类型 - 例如,将整数添加到浮点数会产生浮点数结果。

注意: Python 支持多种方法来分析和解析未计算的数据。在我们的指南中了解更多信息在 Python 中处理缺失数据:原因和解决方案。

结论

如何使用Python数据类型?Python 提供了许多内置数据类型,具体取决于存储数据的用途和功能。由于数据类型是类,因此创建新的数据类型并不是一个复杂的过程。

使用 Python 编程时,IDE 和代码编辑器都很有用。了解所有可用选项之间的区别以及何时使用它们对于高效开发至关重要。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: