数字类型介绍 整数 小整数对象池、浮点数、复数、布尔类型、空值、数据计算
数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么 它就是一个全新的对象。数字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
>>>
对于0和1、正与反,都是传统意义上的布尔类型。 但在Python语言中,布尔类型只有两个值,True 与False。请注意,是英文单词的对与 错,并且首字母要大写,不能其它花式变型。 布尔值通常用来判断条件是否成立。
True和False转换为1和0来计算
In [1]: a = 1
In [2]: if a > 3:
...: print("这是一个大于3的数字")
...: else:
...: print("这是一个小于3的数字")
...:
这是一个小于3的数字
In [3]: a > 3
Out[3]: False
In [4]: 3 in [1,2,3]
Out[4]: True
In [5]: 3 == 9/3
Out[5]: True
In [6]: 3 is '3'
Out[6]: False
In [7]: bool(1)
Out[7]: True
In [8]: bool(0)
Out[8]: False
In [9]: True == 1
Out[9]: True
In [10]: True == 0
Out[10]: False
In [11]: False == 0
Out[11]: True
In [12]: bool(0.0)
Out[12]: False
In [13]: bool(-0.0)
Out[13]: False
In [14]: bool(-1)
Out[14]: True
In [15]: bool(False)
Out[15]: False
In [16]: bool('False')
Out[16]: True
In [17]: True and True
Out[17]: True
In [18]: True and False
Out[18]: False
In [19]: False and False
Out[19]: False
In [20]: 5>3 and 3>2
Out[20]: True
In [21]: True or True
Out[21]: True
In [22]: True > False
Out[22]: True
In [23]: True == 1
Out[23]: True
In [24]: False == 0
Out[24]: True
In [25]: True -1
Out[25]: 0
In [26]: False +1
Out[26]: 1
In [27]: True*3
Out[27]: 3
In [28]:
空值不是布尔类型,严格的来说放在这里是不合适的,只不过和布尔关系比较紧密。
空值是Python里一个特殊的值,用None表示(首字母大写)。None不能理解为0,因为0 是整数类型,而None是一个特殊的值。None也不是布尔类型,而是NoneType。
>>> None == 0
False
>>> bool(None)
False
>>> type(None)
<class 'NoneType'>
>>> type(1)
<class 'int'>
>>> type(False)
<class 'bool'>
>>>
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有