6、Python 数据类型-数字类型
数字类型介绍 整数 小整数对象池、浮点数、复数、布尔类型、空值、数据计算
数字类型
数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。数字 1 和 2 分别代表两个不同的对象,对变量重新赋值--个数字类型,会新建一一个数字对象。
还是要强调一下 Python 的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念。只有 1,[1, 2], "hello"这一类对象才具有数据类型的概念。
Python 支持三种不同的数字类型,整数、浮点数和复数。
整数
通常被称为整型,数值为正或者负,不带小数点。
表示数字的时候,有时我们还会用八进制或十六进制来表示:十六进制用 0x 前缀和 0-9,a-f 表示, 例如: 0xff00 八进制用 0o 前缀和 0-7 表示,例如 0o45
python 的整数长度为 32 位,并且通常是连续分配内存空间的。
>>> a = 1
>>> id(a)
504917008 # 所占内存空间地址
>>> b = 2
>>> id(b)
504917040 # 和a的相差32
>>>
复制代码
小整数对象池
python 初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是一个包含 262 个指向整数对象的指针数组,范围是-5 到 256。 比如整数 10,即使我们在程序里没有创建它,其实在 Python 后台已经悄悄为我们创建了。
>>> id(b)
504917040
>>> id(10)
504917296
>>> id(11)
504917328
>>> id(-5)
504916816
>>> id(-6)
48328656 # 很明显和-5的不一样
>>> id(-4)
504916848 # 和-5的连续 相差32
>>> id(257)
48327440
>>>
复制代码
整数缓存区
>>> a = 100
>>> id(a)
504920176
>>> del a # 删除
>>> a
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
a
NameError: name 'a' is not defined
>>> b = 100
>>> id(b)
504920176 # b 和 a 的内存空间地址是一样的
>>>
复制代码
浮点数
浮点数也就是小数,如 1.23, 3.14, -9.01, 等等。但是对于很大或很小的浮点数,- 般用科学计数法表示,把 10 用 e 替代,1.23x10^9 就是 1.23e9, 或者 12.3e8, 0.000012 可以写成 1 .2e-5,等等。
>>> a = 10
>>> float(a)
10.0
>>> b = 1.1
>>> int(b)
1
>>> c = 1.5
>>> int(b)
1 #不遵循四舍五入,只取整数
复制代码
复数
复数由实数部分和虛数部分构成,可以用 a + bj ,或者 complex(a,b)表示,复数的实部 a 和虚部 b 都是浮点。
数据计算
函数 返回值(描述)
abs(x) 返回数字的绝对值,如abs(-10) 返回10
ceil(x) 返回数字的上入整数,如math. ceil(4.1)返回5
exp(x) 返回e的x次幂(ex),如math.exp(1)返回2. 718281828459045
fabs(x) 返回数字的绝对值,如math. fabs(-10)返回10.0
floor(x) 返回数字的下舍整数,如math. floor(4.9)返回4
log(x) 如math. log(math .e )返回1.日, math.1og(100, 10)返回2.0
log10(x) 返回以10为基数的x的对数,如math. log10(100)返回2.0
max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。
min(x1, x2, ...) 返回给定参数的最小值,参数可以为序列。
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
Pow(x, y) x**y运算后的值。
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x) 返回数字x的平方根
acos(x) 返回x的反余弦弧度值。
asin(x) 返回x的反正弦弧度值。
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回给定的x及Y坐标值的反正切值。
cos(x) 返回x的弧度的余弦值。
hypot(x, y) 返回欧几里德范数sqrt(xx + yy)
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 将弧度转换为角度,如degrees (math.pi/2),返回90.0
radians(x) 将角度转换为弧度
复制代码
>>> import math
>>> abs(-1)
1
>>> math.ceil(4.1)
5
>>> math.floor(4.5)
4
>>>
复制代码
评论