数据类型前置知识

4.1 数据类型前置知识

4.1.1 数据类型的概念

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

4.1.2 哈希

哈希(Hash),一般翻译做散列、杂凑。是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。
这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。
简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
在Python学习中经常会遇到两个概念,可哈希和不可哈希。其实可哈希就是指数据不可原地修改,而不可哈希就是指数据可原地修改。比如在Python中,字符串数据类型就是可哈希的(不可变),而列表数据类型就是不可哈希的(可变)。

4.1.2.1 hash(obj)

描述
hash函数返回该对象的哈希值(如果它有的话)。哈希值是整数。它们在字典查找元素时用来快速比较字典的键。
相同大小的数字变量有相同的哈希值(即使它们类型不同,如 1 和 1.0)。
整数的哈希值就是其本身。
可变的数据类型在尝试获取哈希值时会报错: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'

4.1.3 Python常见数据类型

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

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

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

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

接下来的章节,我们会对这些数据类型进行详细介绍。

4.1.4 判断数据类型

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

4.1.4.1 type(obj)

描述
type函数用来返回指定对象的类型。
示例
>>> type('1')
>>> type(1)
>>> type(1.1)

<class 'str'>
<class 'int'>
<class 'float'>

4.1.4.2 isinstance(object, classinfo)

描述
isinstance函数用来返回某个对象是否是指定的对象类型。
示例
>>> isinstance(1, int)
>>> isinstance(1.1, str)

True
False

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:数据类型前置知识 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • 面向对象编程

    6.1 面向对象编程相关概念 6.1.1 什么是面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。在该思想中程序里万物都是对象。OOP把对象作为程序的基本单元,把具有相同行为的对象归纳成类,通过封装隐藏类的内部细节,通过继承使类得到泛化,通过多态实现基于对象类型的动态分类。封装、继承和多态是…

    Python开发 2023年3月31日
    00
  • Python函数

    5.1 函数相关基础概念 5.1.1 函数是什么 函数是指一段可以直接被另一段程序或代码引用的程序或代码。也叫做子程序、(OOP中)方法。一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。开发者要善于利用函…

    Python开发 2023年4月2日
    00
  • 类型转换及相关函数

    4.11 类型转换及相关函数 在Python中,不同的数据类型是可以相互转换的,下面列举一些之前没有介绍但是比较常见的数据类型转换及相关函数,以供参考。 4.11.1 进制转换类 4.11.1.1 bin(x) 描述将整数转变为以“0b”前缀的二进制字符串。示例>>> bin(3)>>> bin(-10) ‘0b11”-…

    Python开发 2023年4月2日
    00
  • Python运算符

    3.3 Python运算符 运算符用于执行程序代码运算,根据操作数一般分为一元运算符、二元运算符。例如:2+3,其操作数是2和3,而运算符则是+。在Python中运算符可以分为以下几种类型:算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。 3.3.1 算术运算符 +、-、*:分别对应数学中的加减乘,在此不做过多的赘述…

    Python开发 2023年4月2日
    00
  • 类属性和对象属性

    6.3 类属性和对象属性 在类定义中,属性按照归属分为对象属性、类属性。按照调用的私密性分为一般属性和私有属性。 6.3.1 类属性和对象属性 对象属性是最常用到的一种属性。即使我们对上面的类:MyClass1实例化了一个mc的对象,mc对象也不能进行有实质的操作。因为mc对象的类:MyClass1中既没有定义属性也没有定义方法。在定义类时还能定义类属性。接…

    Python开发 2023年3月31日
    00
  • 使用pip管理库

    2.5 使用pip管理库 安装Python后会默认安装pip工具,该工具可以用来安装、升级和移除库。默认情况下 pip 将从[Python Package Index]https://pypi.org 处下载安装软件包。pip 有许多子命令: “install”, “uninstall”, “freeze” 等等。下面我们来介绍一些比较重要且实用的pip命令…

    Python开发 2023年4月2日
    00
  • 集合(set)

    4.6 集合(set) 集合是由不重复元素组成的无序容器。集合中的元素不能重复,即使向集合中再添加同样的元素,也只会保留一个。由于集合的这种特性,所以一般可以用集合进行去重。集合中不能添加可变对象(不可哈希),因为无法判断两个可变对象是否相同,也就无法保证集合的内部不会有重复元素。集合中的元素是无序的,我们通过print可以显示集合内的元素,但是显示的结果并…

    Python开发 2023年4月2日
    00
  • Python关键字(保留字)

    3.2 Python关键字(保留字) 保留字又称关键字,不可用于普通标识符。关键字的拼写必须与这里列出的完全一致。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字。>>> import keyword>>> keyword.kwlist [‘False’, ‘None’, ‘True’,…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部