Python的基础数据类型

Python的基础数据类型

  • 数据类型介绍
    • 数据类型分类的优点
    • 数据类型种类
      • 数值类型
      • 序列类型
      • 集合类型
      • 映射类型
  • 数值类型
    • 数值类型介绍
    • 整数类型
      • 整数`int`介绍
      • 整数内存
      • 小整数对象池
      • 整数缓冲区
    • 浮点数、复数
      • 浮点数`float`介绍
      • 浮点数与整数之间的转换
      • 复数(complex)
    • 数学计算
    • 布尔类型
      • 布尔类型介绍
      • `bool()`的使用
      • 布尔类型运算
    • 空值(None)
      • 空值介绍
    • 字符串(str)
      • 字符串介绍
      • 字符串存储
        • 存储方式介绍
        • 字符串的存储
      • 字符串下标
      • 字符串切片
      • 字符串类型转换
      • 字符串组成方式
      • 字符串常见操作

数据类型介绍

数据类型分类的优点

  • 更好的非陪管理内存
  • 方便统一管理
  • 更贴近人类分类管理习惯

数据类型种类

数值类型

  • intboolfloatcompiex

序列类型

  • 不可变序列:strtuplebytes
  • 可变序列:list

集合类型

  • set

映射类型

  • dict

数值类型

数值类型介绍

  • 数值类型是 不可变 类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象。还是要强调一下 Python 的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念 。只有1[1,2]"hello"这一类对象才具有数据类型的概念。Python 支持三种不同的数值类型:整数、浮点数和复数与布尔。

整数类型

整数int介绍

  • 整数通常被称为整型,数值为正或者负,不带小数点。表示数字的时候,通常使用十进制(decimal) 来表示。
  • 有时我们还会用八进制或十六进制来表示(了解):
    • 十六进制用0x前缀和0-9,a-f表示,例如:0xff00。python 中使用 hex() 将十进制转为十六
      进制
    • 八进制用0o前缀和0-7表示,例如0o45。python 中使用 oct() 将十进制转为八进制
    • 二进制用0b前缀和0-1表示,例如0b11。python 中使用 bin() 将十进制转为二进制

整数内存

  • python 的整数长度为32位,并且通常是连续分配内存空间的。从下面代码的内存地址看,之间正好相差32。
print(id(1))
print(id(2))
a = int(id(1))
b = int(id(2))
print(a - b)


140734133634720
140734133634752
-32

小整数对象池

  • python 初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是一个包含262个指向整数对象的指针数组,范围是-5到256。也就是说比如整数10,即使我们在程序里没有创建它,其实在 Python 后台已经为我们创建了。
  • 作用:节省开销,增快运行速度

整数缓冲区

  • 除了小整数对象池,Python 还有整数缓冲区的概念,也就是刚被删除的整数,不会被真正立刻删除回收,而是在后台缓冲一段时间,等待下一次的可能调用。
  • 注意:在交互环境当中演示不出来效果。该效果在pycharm当中实现;并且注意不是小整数对象池当中的值。

浮点数、复数

浮点数float介绍

浮点数也就是小数,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,一般用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

浮点数与整数之间的转换

  • intfloat
    float(x) -> floating point number
  • floatint
    int(x = 0) -> intger

复数(complex)

  • 复数由 实数部分虚数部分 构成,可以用 a + bj, 或者 complex(a,b) 表示,复数的 实部a虚部b 都是浮点。

数学计算

  • 对于数学计算,除了前面提到过的简单的加减乘除等等,更多的科学计算需要导入 math 这个标准库,它包含了绝大多数我们可能需要的科学计算函数。
math.ceil(x)
math.fioor(x)
math.pow(x)
abs(x)
round(x)

布尔类型

布尔类型介绍

  • 对于对与错、0与1,都是传统意义上的布尔
    类型。但在Python语言中,布尔类型只有两个值,
    TrueFalse

注意:

  • 首字母必须大写,不能有其它的花式变
    型。

  • 数值类型:00.0bool 值都为 False,其它的都为 True

  • 字符串:空字符串的 bool 值为 False,其它的都为 True。注意空格字符串为 True

  • 列表:空列表的 bool 值为False,其它的都为 True

  • Nonebool 值永远为 False

bool()的使用

  • 通过 python 内置的 bool() 函数来测试一个表达式的布尔值的结果。
print(bool(2 > 3))
print(bool(3 > 2))


False
True

布尔类型运算

布尔类型运算如下:

  • and 运算
  • or 运算
  • not 运算
  • 算术 运算,注意:把 True 看作1,而 False 看作 0

空值(None)

空值介绍

  • 空值不是布尔值,是Python里一个特殊值,用None(首字母大写)表示,None不能理解为0,因为0是整数类型,而None是一个特殊值,None也不是布尔类型,而是NoneType
print(type(None))


<class 'NoneType'>

字符串(str)

字符串介绍

  • 字符串是 Python 中最常用的数据类型之一,使用单引号或双引号来创建字符串,使用三引号创建多行字符串。

注意:

  • 字符串的单引号与双引号都是成对出现的,不能一边单一边双
  • 字符串是不可变的序列数据类型,不能直接修改字符串本身,和数字类型一样

字符串存储

存储方式介绍

  • CPU:速度快,存储小
  • 硬盘:速度慢,存储大
  • 内存:速度比CPU慢但是比硬盘快;存储比CPU大,但是比硬盘小。
    1GB=1024MB
    1MB=1024KB
    1KB=8bit

字符串的存储

整数int在内存中占一个字节,字符串str不管中间多少内容都要单独存储。
Python的基础数据类型_第1张图片

字符串下标

  • 由于字符串是 序列数据结构 ,所以我们可以通过 下标 将字符串中某个字母取出来。下标也可称为 索引,默认从0开
  • 例如:
    Python的基础数据类型_第2张图片

字符串切片

Python的基础数据类型_第3张图片
Python的基础数据类型_第4张图片
注意:

  • 索引默认从0开始
  • 切片时左闭右开
  • 当取单个字符的时候,索引超出范围会报错。而切片时不会报错。
  • 步长不能为0,也不允许为浮点数

字符串类型转换

  • str -> int int()->intger
  • int-> str str(obiect='') -> str

字符串组成方式

字符串相加

字符串格式化:

  • %s %d %f
  • str.format()
  • python3.6.4 引入 f''

字符串常见操作

S.find(sub) --> 返回该元素最小的索引
S.index(sub) --> 返回该元素最小的索引
S.replace(old, new[, count]) --> 替换
S.split(sep=None) --> 以sep来分割字符串,并返回列表。sep默认为None,分割默认为空格
S.startswith(prefix[, start[, end]]) --> 判断字符串是否以前缀开始,返回为bool值。
S.endswith(suffix[, start[, end]]) --> 判断字符串是否以尾缀结束,返回为bool值。
S.lower() --> 将字符串全部转为小写
S.upper() --> 将字符串全部转为大写
S.strip([chars]) --> 默认去掉字符串左右的空格
S.isalpha() --> 判断字符串是否全为字母,返回的是bool
S.isdigit() --> 判断字符串是否全为数字,返回的是bool
S.isalnum() --> 判断字符串是否全为数字或者字母,不存在特殊字符,返回的是bool
S.join(iterable) --> 将序列中的元素以指定的字符连接生成一个新的字符串

你可能感兴趣的:(Python的基础数据类型)