数据类型前置知识

4.1 数据类型前置知识

顾名思义,数据类型就是指数据的类型,计算机不像人,能够很好的分辨数据类型,比如 10086,计算机就不知道这个数据到底是字符串还是数值。计算机在用这个数据进行计算时就会出现问题。
为了避免这种情况,您需要标记数据,这就是类型。告诉计算机如何处理这种数据。

[En]

To avoid this, you need to label the data, which is the type. Tell the computer what to do with this kind of data.

哈希(Hash),一般翻译做散列、杂凑。是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。
这种变换是压缩映射,即散列值的空间通常比输入空间小得多,不同的输入可能被散列到相同的输出中,因此无法从散列值确定唯一的输入值。

[En]

This transformation is a compressed mapping, that is, the space of the hash value is usually much smaller than the input space, and different inputs may be hashed into the same output, so it is not possible to determine the unique input value from the hash value.

简单地说,它是一个将任意长度的消息压缩成固定长度的消息摘要的函数。

[En]

To put it simply, it is a function that compresses a message of any length into a message digest of a fixed length.

在Python学习中经常会遇到两个概念,可哈希和不可哈希。其实可哈希就是指数据不可原地修改,而不可哈希就是指数据可原地修改。比如在Python中,字符串数据类型就是可哈希的(不可变),而列表数据类型就是不可哈希的(可变)。

描述
hash函数返回该对象的哈希值(如果它有的话)。哈希值是整数。它们在字典查找元素时用来快速比较字典的键。
大小相同的数值变量具有相同的散列值(即使它们的类型不同,例如1和1.0)。

[En]

Numeric variables of the same size have the same hash value (even if they are of different types, such as 1 and 1.0).

整数的哈希值是其自身。

[En]

The hash value of an integer is itself.

可变的数据类型在尝试获取哈希值时会报错:unhashable。
示例

print(hash(2))
print(hash(2.0))
print(hash(2.1))
print(hash('hash'))
print(hash([1, 2]))

2
2
230584300921369602
-1167130528123277563
Traceback (most recent call last):
File “E:\studypy\tmp.py”, line 6, in
print(hash([1, 2]))
TypeError: unhashable type: ‘list’

Python中比较重要且常用的数据类型有以下6种:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的6个标准数据类型中,相关属性如下表:

数据类型 可哈希 可迭代 序列 数字 可哈希 不可迭代 NULL 字符串 可哈希 可迭代 √ 列表 不可哈希 可迭代 √ 元组 可哈希 可迭代 √ 集合 不可哈希 可迭代 × 字典 不可哈希 可迭代 ×

我们将在接下来的章节中详细描述这些数据类型。

[En]

We will describe these data types in detail in the following chapters.

可以使用type函数和isinstance函数来判断某个对象的类型。

描述
type函数用来返回指定对象的类型。
示例

type(‘1’)
type(1)
type(1.1)

描述
isinstance函数用来返回某个对象是否是指定的对象类型。
示例

isinstance(1, int)
isinstance(1.1, str)

True
False

Original: https://www.cnblogs.com/sibide/p/16390577.html
Author: crleep
Title: 数据类型前置知识

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/499301/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球