ITPub博客

首页 > 应用开发 > Python > 0-4 Python 基础数据类型-数值类型

0-4 Python 基础数据类型-数值类型

Python 作者:qwer1030274531 时间:2020-12-24 14:25:00 0 删除 编辑

0-4 Python 基础数据类型-数值类型


为什么会有数据类型?[了解]

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

数据类型种类 [熟悉]

  • 数值类型:int、bool、float、complex
  • 序列类型:不可变:str、tuple、bytes 可变: 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。
  • 在这里插入图片描述

小整数对象池 [了解]

  • 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,等等。

浮点数与整数之间转换 [掌握]

在这里插入图片描述

复数 (complex) [了解]

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

数学计算

  • 对于数学计算,除了前面提到过的简单的加减乘除等等,更多的科学计算需要导入 math 这个标准库,它包含了绝大多数我们可能需要的科学计算函数。
    math.ceil(x)
    math.floor(x)
    math.pow(x)
    abs(x)
    round(x)
import math             # 导入标准库mathprint(math.ceil(4.1))   # 5:向上取整print(math.floor(4.5))  # 4:向下取整print(math.pow(2, 3))   # x**y  2**3a = -10print(abs(a))           # 打印取绝对值后的值# python3进行改良,不再是四舍五入,而是四舍六入五成偶print(round(4.1))       # 舍去为4print(round(4.5))       # 舍去为4print(round(4.6))       # 进1为5print(round(3.5))       # 4 5进1如果为偶数 则进1,否则舍去1234567891011121314

布尔与空值


布尔类型介绍 [掌握]

  • 比如我们抛硬币,不是正面就是反面。那其实对于对与错、0与1,都是传统意义上的布尔类型。
  • 但在Python语言中,布尔类型只有两个值,True 与 False。
  • 注意:首字母必须大写,不能有其它的花式变型。

bool() 使用

  • 我们通过 python 内置的 bool() 函数来测试一个表达式的布尔值的结果
  • 在这里插入图片描述
    在这里插入图片描述
"""
布尔类型应用
"""print(2 > 3)    # False 2不大于3print(2 < 3)    # True 2小于3print(3 in [1, 2, 3])   # True  3在列表[1,2,3]print(3 == 9/3)     # True 3 == 3.0print(3 is 3.0)     # False 内存地址 3 != 3.0"""
布尔函数
"""print(bool(True))     # Trueprint(bool(False))    # False# 数值:0 0.0的bool值为False,其余的全为Trueprint(bool(1))        # Trueprint(bool(-1))       # Trueprint(bool(0))        # Falseprint(bool(0.0))      # False# 字符串:只有空字符串的bool值为False,其余均为True。注意:含有空格的字符串也是非空字符串print(bool("yes"))    # Trueprint(bool(""))       # Falseprint(bool("  "))     # Trueprint(bool("0"))      # True# 列表print(bool([]))              # Falseprint(bool([1, 2, 3]))       # True# Noneprint(bool(None)) # False  None的布尔值永远为False"""
布尔计算
"""print(True + 1) # 2print(False + 1) # 11234567891011121314151617181920212223242526272829303132333435363738394041

布

归纳:

  • 数值类型:0、0.0的 bool 值都为 False,其它的都为 True
  • 字符串:空字符串的 bool 值为 False,其它的都为 True。注意空格字符串为 True
  • 列表:空列表的 bool 值为False,其它的都为 True。
  • None 的 bool 值永远为 False
    在这里插入图片描述

布尔类型运算

布尔类型运算如下:

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

空值 介绍 [掌握]

  • 空值不是布尔类型,是 Python 里一个特殊的值,用 None 表示(首字母大写)。
  • None 不能理解为0,因为0是整数类型,而 None 是一个特殊的值。None 也不是布尔类型,而是 NoneType。
    在这里插入图片描述

** 字符串 **


字符串的小贴士~
字符串中:print(“hello \n world”)
\n 用来表示换行 如果想打印 \n 则要添加转义符 \ 如:print(hello \n world)
使用 三引号(文本格式) 可以保留文本样式 如:换行、空格等

字符串介绍 [掌握]

  • 字符串是 Python 中最常用的数据类型之一,使用单引号或双引号来创建字符串,使用三引号创建多行字符串。
    注意:
  • 字符串的单引号与双引号都是 成对 出现的,不能一边单一边双。
  • 字符串是 不可变 的 序列数据类型,不能直接修改字符串本身,和数字类型一样!

字符串的存储 [了解]

思考: 以下 数值 与 字符串 存储是一样的吗?
在这里插入图片描述
在这里插入图片描述
答案是不一样的

存储方式的介绍

  • CPU:速度快,存储小
  • 硬盘:速度慢,存储大
  • 内存:速度比CPU慢,但比硬盘快。存储比CPU大,但比硬盘小。
  • 16G
  • 1G = 1024M
  • 1M = 1024KB
  • 1KB = 1024B
  • 1B = 8bit

字符串的存储

整数 在内存中占 一个字节,字符串 不管中间多少内容都要 单独存储。
在这里插入图片描述

字符串的下标 [重点掌握]

  • 由于字符串是 序列数据结构 ,所以我们可以通过 下标 将字符串中某个字母取出来。
  • 下标也可称为 索引,默认从0开始。
# 取出 'e'In [1]: name = 'hello world'In [3]: name[1]Out[3]: 'e' # h e l l o   w o r l d# 0 1 2 3 4 5 6 7 8 9 10# 取出'e' 即下标[1]# 取出最后一个字符'd'In [1]: name = 'hello world'In [4]: name[-1]Out[4]: 'd'# 取出'd' 最后一个字符 即下标[-1]# 如果超出下标数值# 报错:IndexError: string index out of range取出的值不可变123456789101112131415161718

字符串的切片 [重点掌握]

在这里插入图片描述
在这里插入图片描述
注意:

  • 索引默认从0开始
  • 切片时左闭右开
  • 当是取单个字符的时候,索引超出范围会报错。而切片时不会报错。
  • 步长不能为0,也不允许为浮点数
# 切片时左闭右开如:
In [1]: name = 'hello world'# 取 llo world l下标为2,d下标为10In [2]: name[2:10]Out[2]: 'llo worl'# 根据左闭右开In [9]: name[2:11]Out[9]: 'llo world'# 结束索引要+1# 取到最后一位也可以In [11]: name[2:]Out[11]: 'llo world'# 不写为默认1234567891011121314151617

字符串类型转换 [掌握]

在这里插入图片描述

字符串组成方式 [掌握]

  • 字符串相加
  • 字符串格式化
    %s %d %f
    str.format()
  • python3.6.4 引入  f''

字符串常见操作 [熟悉] http://dxb.myzx.cn/lanzhou/

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) --> 将序列中的元素以指定的字符连接生成一个新的字符串

"""
字符串拼接
"""# print('1'+'2')    # 字符串用+做拼接 '12'"""
字符串格式化
"""name = "hansen"age = 20# %号格式需要考虑数据类型# %s --> str# %d --> decimal# %f --> floatprint("%s年龄为%d" % (name, age))# str.format() 好处1:不用考虑数据类型 好处2:可以切换位置# {} --> 占坑print("{1}年龄为{0}".format(age, name))# f''  python3.6.4以上的版本# {} --> 占坑print(f"{name}年龄为{age}")123456789101112131415161718192021222324252627

课后作业 http://zzdxb.baikezh.com/shangqiu/

作业1 http://dxb.myzx.cn/petitmal/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

作业2 http://ask.baikezh.com/

掌握浮点数与整数之间转换
如:
int(120.55) 输出120
float(120) 输出 120.0
布尔类型

  • 比如我们抛硬币,不是正面就是反面。那其实对于对与错、0与1,都是传统意义上的布尔类型。

字符串

  • 但在Python语言中,布尔类型只有两个值,True 与 False。
  • 注意:首字母必须大写,不能有其它的花式变型。
  • 字符串是 Python 中最常用的数据类型之一,使用单引号或双引号来创建字符串,使用三引号创建多行字符串。
    注意:
  • 字符串的单引号与双引号都是 成对 出现的,不能一边单一边双。
  • 字符串是 不可变 的 序列数据类型,不能直接修改字符串本身,和数字类型一样!
    字符串下标
  • 由于字符串是 序列数据结构 ,所以我们可以通过 下标 将字符串中某个字母取出来。
  • 下标也可称为 索引,默认从0开始。

作业3 http://zzdxb.baikezh.com/

切片逆序  var[::-1]
在这里插入图片描述

作业4

在字符串与字符串之间 + 加号用作为 连接符
在这里插入图片描述

转载至:https://zhe88.blog.csdn.net/article/details/111551685

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30239065/viewspace-2744963/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-05-08

  • 博文量
    190
  • 访问量
    164154