摘要:Python3目前已经成为主流,和版本2天壤之别,关于Python3的内置类型你了解吗?

本文将专注于解释器支持的内置类型,基于版本3.9.1进行讲解。

内置的主要类型是numerics、sequences、mappings、classes、instances、exceptions。

值得说明的是,在Python中真值设定为1或True,假值设定为以下情况:

  • None和False

  • 任何数字类型的0

  • 空序列或集合

本文将用type函数来测试数据类型。

Numeric Types(数字类型)

 

  • int(整形)

    整形我们很小就接触过,自然数这个概念应该小学的时候就明白了。而整数包含了自然数,不但有正整数和零,还有负整数。Python中的int类型就是整数类型。

  • float(浮点类型)

    从上图可以发现,1.1并不是整数,没错,那么返回的float类型是什么呢?这个在Python中成为浮点数,浮点数可以这样理解,就是带了小数点的数,同样分为正、0、负这三个区间。

  • complex(复数类型)

    学基础数学的时候,我们学数这一章的时候,不但有实数还有复数对吧。无论是int还是float都只是实数,那么作为一门编程语言是用来解决现实问题的。如果都不能准确描述现实问题,这门语言肯定设计有缺陷。Python中用j或者J来表示复数,不过新手暂时不用接触复数,这个需要一点数学基础去理解。

Iterator Types(迭代类型)

 

迭代是Python比较强大的功能之一,内置函数iter()用来获取迭代对象,而内置方法__iter__()和__next__()用来生成可迭代的类型。

这里用一个例子来讲解,方便理解。

可以看见,如果我们自定义一个类,里面没有包含__iter__()和__next__()那么这个对象不可迭代。而系统中有部分是可以迭代的类,我这里用一个列表做示范,让大家明白迭代的意义。

Sequence Types(序列类型)

 

 

  • list(列表)

    通俗的讲,列表就是一个可变顺序的集合。

  • tuple(元组)

    既然有了列表,为何还需要元组这个概念呢?元组和列表不都是一个集合吗?主要区别在于元组不可修改,用于不可变的集合。无论是元组还是列表,里面的元素都可以重复,而真正的集合是不可以重复的!

  • range(范围)

    至于range就是在特定的情况下使用,因为它只代表了一个数字序列,配合循环使用。range里面只能填充数字,否则就会报错。

Text Sequence Type(文本序列类型)

 

说字符串可能大家更为方便理解,也就是一段字符组成的序列。在Python中用str表示。编码方式为:Unicode,支持双引号、单引号和单双引号混合使用。

Binary Sequence Types(二进制序列类型)

 

bytes和bytearray作为二进制数据的基本存储单位,属于字节数据。只能存储ASCII字符,不在ASCII范围内的需要进行转义。区别在于bytearray可以修改,而bytes是不可变序列。将字符串转换为bytes只需要在字符串前加一个b,转换成bytearray则需要使用bytearray()这个函数。二进制序列类型还有一个memoryview,作为新手暂时不用去了解关于内存的操作。

Set Type(集合类型)


set和frozenset都是集合的表现形式,把集合和上文的序列类型区分开来,主要是不可重复性。集合都是可迭代的,可以获取iter对象。集合用{}来表示,序列类型都可以可以通过set()函数来进行转换成集合,自动删除重复的,值得注意的是字典类型转换后的集合只有key,没有value。至于fronzenset和set的差别就是它不可变。

Mapping Types(映射类型)

大家前面应该会很纳闷,为什么字典类型dict没有在序列类型里面?因为dict在python中属于映射类型,也是唯一的映射类型。字典是键值用冒号配对的组合,由逗号分割。

本文到这里就结束了,简明扼要的讲述了一下Python3内置类型有哪些。关于它们的使用将在后续文章进行详细解析。

Python3内置类型有哪些?的更多相关文章

  1. Python3中内置类型bytes和str用法及byte和string之间各种编码转换,python--列表,元组,字符串互相转换

    Python3中内置类型bytes和str用法及byte和string之间各种编码转换 python--列表,元组,字符串互相转换 列表,元组和字符串python中有三个内建函数:,他们之间的互相转换 ...

  2. 易被忽略的Python内置类型

    Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们. 然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些"不同寻常&quo ...

  3. 3、python内置类型(0529)

    python的内置对象类型以及支持的运算 python对象的相关术语 python程序中保存的所有数据都是围绕对象这个概念展开的 程序中存储的所有数据都是对象 每个对象都有一个身份.一个类型和一个值 ...

  4. golang的内置类型map的一些事

    golang的map类型是一个比较特殊的类型,不同于int, string, byte这样的基本类型,在经过一番探究之后得出了一些结论: 1.golang的map类型虽然是内置类型,但和基本类型有很大 ...

  5. JavaScript备忘录(1)——内置类型

    JavaScript有一些内置类型,还有很多常用的内置的方法,本文稍作总结,以备查阅. 值类型 我的理解,值类型是分配在栈上的,而引用类型(当然也包括引用类型内部的值类型)是分配在堆上的.值类型是不可 ...

  6. Python——内置类型

    Python定义了丰富的数据类型,包括: 数值型:int, float, complex 序列:(iterable) str, unicode, tuple, list, bytearray, buf ...

  7. C++内置类型对象之间的转换

    C++定义了一组内置类型对象之间的标准转换,在必要时它们被编译器隐式地应用到对象上. 隐式类型转换发生在下列这些典型情况下. 1. 在混合类型的算数表达式中 规则:在这种情况下最宽的数据类型成为目标转 ...

  8. C++ - 内置类型的最大值宏定义

    内置类型的最大值宏定义 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24311895 C++中, 常常会使用, 某些类型的最大值 ...

  9. C++基本内置类型

    C++基本内置类型 基本内置类型包括算术类型和空类型. 算术类型 算术类型包括整型和浮点型. 类型 含义 最小尺寸 bool 布尔型 - char 字符型 8 bit wchar_t 宽字符型 16 ...

随机推荐

  1. Faceto_object_programdesign

    一面向对象程序设计思想 1 和面向过程关注点不同 过程: 程序执行流程和逻辑 (局部功能) 对象: 程序中的对象 (程序结构) 2 对象 现实世界中的实体和事物 可以看成是一种具有自身属性和功能的构件 ...

  2. 【JavaWeb】jQuery 基础

    jQuery 基础 介绍 顾名思义,它是 JavaScript 和 查询,是辅助 JavaScript 开发的类库. 它的核心思想是 write less, do more. 所以它实现了很多浏览器的 ...

  3. 执行py文件需要可执行权限吗?

    案例解析 这个问题描述起来有点违反直觉,要执行一个文件难道不应该需要可执行权限吗?让我们先来看一个例子: # module1.py def test(): print ('hello world!') ...

  4. JavaScript中的原型、原型链、原型模式

    今天,咱来聊聊JavaScript中的原型跟原型链 原型跟原型模式 这一块的知识,主要是设计模式方面的. 首先,我们知道JavaScript是面向对象的.既然是面向对象,那它自然也有相应的类跟对象等概 ...

  5. React & Vue2 Butterfly图编排——让数据更自由地驱动DAG

    一.简介 Butterfly是由阿里云-数字产业产研部孵化出来的的图编辑器引擎,由咱们部门以及其他开发者共同维护开发,具有使用自由.定制性高的优势,已支持集团内外上百张画布,不夸张的说,我觉得可以算的 ...

  6. MySQL select if 查询最后一个主键 id

    查询最后一个主键id SELECT IF(MAX(id) IS NULL, 0, MAX(id)) AS maxid FROM users; 查询最小的主键id SELECT IF(MIN(id) I ...

  7. 文件监控性能问题【BUG】

    文件监控性能问题[BUG] 背景:JAVA写了一个文件夹目录监控的程序,使用的是org.apache.commons.io.monitor 包,项目稳定运行了一个月,现场反馈,文件夹数据处理越来越慢, ...

  8. Spring Boot Scheduled定时任务特性

    SpringBoot中的Scheduled定时任务是Spring Boot中非常常用的特性,用来执行一些比如日切或者日终对账这种定时任务 下面说说使用时要注意的Scheduled的几个特性 Sched ...

  9. Poj-P3468题解【线段树】

    本文为原创,转载请注明:http://www.cnblogs.com/kylewilson/ 题目出处: http://poj.org/problem?id=3468 题目描述: 给N个数A1, A2 ...

  10. ELK一个优秀的日志收集、搜索、分析的解决方案

    1 什么是ELK? ELK,是Elastaicsearch.Logstash和Kibana三款软件的简称.Elastaicsearch是一个开源的全文搜索引擎.Logstash则是一个开源的数据收集引 ...