Python语言中 数字类型
数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么
它就是一个全新的对象。数字1和2分别代表两个不同的对象,对变量重新赋值–个
数字类型,会新建一一个数字对象。
还是要强调一下Python的变量和数据类型的关系,变量只是对某个对象的引用或者
说代号、名字、调用等等,变量本身没有数据类型的概念。只有1,[1, 2], “hello”
这一类对象才具有数据类型的概念。
Python支持三种不同的数字类型,整数、浮点数和复数。
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语言中 小整数对象池
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 >>>
Python语言中 整数缓存区
>>> 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 的内存空间地址是一样的 >>>
Python语言中 浮点数
浮点数也就是小数,如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 #不遵循四舍五入,只取整数
Python语言中 复数
复数由实数部分和虛数部分构成,可以用a + bj ,或者complex(a,b)表示,复数的实部a和虚部b都是浮点。
Python语言中 数据计算
函数 返回值(描述) 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 >>>
Python语言中 布尔类型
对于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语言中 空值
空值不是布尔类型,严格的来说放在这里是不合适的,只不过和布尔关系比较紧密。
空值是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'> >>>