Python数值类型包括 整型(int)、浮点型(float)、复数(complex)
(1)数值不变
Python中的数值类型是不允许改变的,意思就是说,如果更改数据类型的值,Python将为它重新分配空间,例子:
a = b = 2
print(id(a),id(b))
a = 7
print(id(a),id(b))
#输出
259315904 259315904
259315984 259315904
'''
在本例中,一开始 a 和 b 的值一样,故内存地址一样
之后由于 a 的值被改变,故 a 的内存地址也被重新分配,但 b 依然不变
'''
(2)数值类型的不同表示法
整数:
Python 3 中虽然没有long,但是Python 3 中的整型是没有限制大小的,完全可以当作long类型来使用;
Python中表示不同进制的数据:
- 十六进制:0x开头
- 八进制:0o开头
- 二进制:0b开头
浮点数:
除了最基本的表示浮点数的方法,科学计数法表示浮点数:7.27e2 = 7.27 * 10^2 = 727.0
复数:
a+bj、complex(a,b)都可以用来表示复数,其中a是实部,b是虚部,且均为浮点型;
(3) Python数字类型转换
int(x)
float(x)
complex(x)
complex(x,y)
<注意> Python中不支持把复数强制转换为整数或者是浮点数
(4)数值运算中存在的类型转换
当有整数和浮点数的混合运算时,整数会被转换为浮点数;
// 运算符不仅仅是 整除运算,事实上 // 的运算结果与分母有关:
>>> 8 // 3.0
2.0
>>> 8 // 3
2
(5)常用数学函数
- abs(x):返回数字的绝对值
- fabs(x):返回数字的绝对值,返回值为浮点型
- ceil(x):向上取整并返回
- floor(x):向下取整并返回
- max(x1,x2…):返回所有参数里的最大值
- min(x1,x2,…):返回所有参数里的最小值
- pow(x,y):返回x的y次幂
- sqrt(x):返回x的平方根
- round(x,n):返回x的“四舍六入、奇进偶弃”后的结果,n的值决定保留几位小数,可省略,省略则代表取整
<解释>
所谓round()函数下的“四舍六入、奇进偶弃”:
round()函数返回的不再是一般意义上的四舍五入后的值,因为传统的四舍五入在处理大量数据时很容易使整体数据偏大,误差不断累积最后造成重大偏移,“四舍六入、奇进偶弃”是四舍五入的改进,它的规则如下:
1.要求保留位数的后一位如果小于等于4或者大于等于6,采取“四舍六入”;
2.要求保留位数的后一位如果等于5,此时看保留位数:
1’如果要求保留整数或者保留一位小数:
a.如果5是最后一位,采取“奇进偶弃”;
b.如果5后面还有数,则不管5的前一位是奇偶都要进位;
2’如果要求保留两位小数及以上:
a.如果5是最后一位,采取“奇弃偶进”;
b.如果5后面还有数,则不管5的前一位是奇偶都要进位;
这个规则流程比较复杂,可以结合代码多看一看:
结合上述看几个例子:
print(round(5.424)) #5
print(round(8.66,1)) #8.67
print(round(7.75,1)) #7.8
print(round(7.85,1)) #7.8
print(round(7.752,1)) #7.8
print(round(7.852,1)) #7.9
print(round(7.745,2)) #7.75
print(round(7.755,2)) #7.75
print(round(7.7451,2)) #7.75
print(round(7.7551,2)) #7.76