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 # 导入标准库math

print(math.ceil(4.1)) # 5:向上取整

print(math.floor(4.5)) # 4:向下取整

print(math.pow(2, 3)) # x**y 2**3

a = -10

print(abs(a)) # 打印取绝对值后的值

#python3进行改良,不再是四舍五入,而是四舍六入五成偶

print(round(4.1)) # 舍去为4

print(round(4.5)) # 舍去为4

print(round(4.6)) # 进1为5

print(round(3.5)) # 4 5进1如果为偶数 则进1,否则舍去

布尔与空值

布尔类型介绍 [掌握]

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

但在Python语言中,布尔类型只有两个值,True 与 False。

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

bool() 使用

我们通过 python 内置的 bool() 函数来测试一个表达式的布尔值的结果

"""

布尔类型应用

"""

print(2 > 3) # False 2不大于3

print(2 < 3) # True 2小于3

print(3 in [1, 2, 3]) # True 3在列表[1,2,3]

print(3 == 9/3) # True 3 == 3.0

print(3 is 3.0) # False 内存地址 3 != 3.0

"""

布尔函数

"""

print(bool(True)) # True

print(bool(False)) # False

# 数值:0 0.0的bool值为False,其余的全为True

print(bool(1)) # True

print(bool(-1)) # True

print(bool(0)) # False

print(bool(0.0)) # False

# 字符串:只有空字符串的bool值为False,其余均为True。注意:含有空格的字符串也是非空字符串

print(bool("yes")) # True

print(bool("")) # False

print(bool(" ")) # True

print(bool("0")) # True

# 列表

print(bool([])) # False

print(bool([1, 2, 3])) # True

# None

print(bool(None)) # False None的布尔值永远为False

"""

布尔计算

"""

print(True + 1) # 2

print(False + 1) # 1

归纳:

数值类型: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

取出的值不可变

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

注意:

索引默认从0开始

切片时左闭右开

当是取单个字符的时候,索引超出范围会报错。而切片时不会报错。

步长不能为0,也不允许为浮点数

# 切片时左闭右开

如:

In [1]: name = 'hello world'

# 取 llo world

l下标为2,d下标为10

In [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'

# 不写为默认

字符串类型转换 [掌握]

字符串组成方式 [掌握]

字符串相加

字符串格式化

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

"""

字符串拼接

"""

# print('1'+'2') # 字符串用+做拼接 '12'

"""

字符串格式化

"""

name = "hansen"

age = 20

# %号格式需要考虑数据类型

# %s --> str

# %d --> decimal

# %f --> float

print("%s年龄为%d" % (name, age))

# str.format() 好处1:不用考虑数据类型 好处2:可以切换位置

# {} --> 占坑

print("{1}年龄为{0}".format(age, name))

# f'' python3.6.4以上的版本

# {} --> 占坑

print(f"{name}年龄为{age}")

python提供的三种基本数值类型_Python 基础数据类型-数值类型相关推荐

  1. python数值类型教程_Python 基础数据类型-数值类型

    Python 基础数据类型-数值类型 为什么会有数据类型?[了解] 更好分配管理内存 方便统一管理 更贴近人类分类管理习惯 数据类型种类 [熟悉] 数值类型:int.bool.float.comple ...

  2. python提供的三种基本数据类型是()_python基础之基本数据类型

    1.概念 1.1 表达式 表达式,是由数字.算符.数字分组符号(括号).自由变量和约束变量等以能求得数值的有意义排列方法所得的组合 表达式特点 表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影 ...

  3. python提供的三种基本数据类型是()_Python基本数据类型

    # Python基本数据类型 ##### 1.Python简介 ##### 2.数值类型 ##### 3.序列类型 ##### 1.Python简介 1.python是一门编程语言,是一门完全面向对象 ...

  4. python程序的三种基本结构是_Python程序设计实验五- 综合运用三种基本结构进行程序设计...

    安徽工程大学 [Python程序设计]实验报告 班级 :物流192 姓名:刘娇阳 学号:3190505213 成绩: 日期:2020.4.24 指导老师 :修宇 [实验名称]实验五 综合运用三种基本结 ...

  5. 88是python语言的整数类型_Python基础数据类型题

    Python基础数据类型 题 考试时间:三个小时 满分100分(80分以上包含80分及格) 1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pyt ...

  6. python和c++哪个好-Scratch和Python与C++三种编程语言选哪个好

    Scratch和Python与C++三种编程语言选哪个好? 目前少儿编程培训机构主要提供的有三种主流课程,分别是Scratch.Python和C++,面对这三种课程家长该如何选择呢,到底哪种课程适合孩 ...

  7. pca算法python代码_三种方法实现PCA算法(Python)

    主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...

  8. Python二叉树的三种深度优先遍历

    Python二叉树的三种深度优先遍历 一.广度优先遍历和深度优先遍历 对二叉树进行遍历(traversal)是指依次对树中每个节点进行访问,在遍历的过程中实现需要的业务. 对树的遍历方式有广度优先遍历 ...

  9. 执行 Python 程序的三种方式及Python 的 IDE —— `PyCharm`

    执行 Python 程序的三种方式 3.1. 解释器 python / python3 Python 的解释器 # 使用 python 2.x 解释器 $ python xxx.py# 使用 pyth ...

最新文章

  1. android tomcat乱码问题,Tomcat在处理GET和POST请求时产生的乱码问题
  2. python的控件text的文本属性_只需6行Python代码就给图片加上水印——你一看就会了...
  3. 使用C语言中的宏来定位出错信息
  4. 关于websocket
  5. Unity编辑器扩展之EditorWindow
  6. HBase之重试机制
  7. Windows Server 2008 安装详细流程 解说
  8. ubuntu18.04 ssh 远程系统拒绝连接 解决方法
  9. SA / SAM 题目集
  10. Python3 Tkinter 之 (1) 主窗口框架
  11. 全局变量不能放在头文件其中
  12. 通信原理教程chapter1
  13. 东方卫视收视率查询_全国电视台收视率排名(最新排行榜)
  14. Windows11 0x80190001错误解决
  15. 代写php代码作业,C++代写 CS 100 Project Two代做php实验作业
  16. Opencv系列教程(一):Opencv读取指定文件夹图片、视频,调用摄像头
  17. CentOS7 和 Ubuntu16 安装、配置并挂载 NFS
  18. 计算机的声音图标打不开怎么回事,win10电脑音量图标打不开怎么办
  19. Linux学习笔记:联想拯救者Y7000进BIOS
  20. 线性方程组个数和方程未知数与方程解的关系

热门文章

  1. 泊位 matlab,一种基于环视相机的自动泊车方法 | 厚势汽车
  2. 各式结构化数据 动态 接入-存储-查询 的处理办法 (第一部分)
  3. 大数据数据库选型:NoSQL数据库入门
  4. 用Python将word文件转换成html
  5. 自动化翻译脚本(墙外使用某个免费翻译网站)
  6. 安装虚拟机VMware出现黄色中断感叹号强制回滚【最全解决方案】6招解决(挥泪分享,本宝宝研究了一下午)
  7. 强化学习——动态规划(策略评估、策略改进)
  8. SVN服务器搭建以及外网访问内网SVN
  9. 游戏建模‖那些你找工作时不明白的事
  10. 典型相关分析,奇异值分解,RRR(Reduced-Rank Regression)