python的数值类型包括常规的类型:整数(没有小数部分的数字)、浮点数(通俗地说,就是有小数部分的数字)以及其它数值类型(复数、分数、有理数、无理数、集合、进制数等)。除了十进制整数,还有二进制数、八进制数、十六进制数。
1 2 3 4 5 6 7 类型 示例 --------------------------------------- 整数 1234, -24, 0 浮点数 1.23, 1., .2, 3.14e-10 八进制 0o177, 0O177 十六进制 0x9ff, 0X9ff 二进制 0b1010, 0B1010
需要说明的几点事项:
- python 3.x中的整数不区分一般整数和长整型整数,3.x版本中的整数支持无穷精度
- 任何时候浮点数都是不精确的。当带有小数点或科学计数的标记符号e或E,就表示这是浮点数
- 当浮点数参与表达式的运算时,会以浮点数的规则进行运算,也就是整数会转换成浮点数类型
- python中的浮点数精度和C语言的双精度浮点数精度相同
- 整数除了十进制整数外,还可以写成二进制、八进制、十六进制甚至是其它进制的整数,它们的转换方式见后文
- 当一个整数以0b或0B开头,其后都是0、1时,默认识别为二进制整数
- 当一个整数以0o或0O开头(数值零和大、小写的字母o),其后都是0-7之间的数值时,默认识别为8进制整数
- 当一个整数以0x或0X开始,其后都是[0-9a-fA-F]之间的字符时,默认识别为十六进制
python中的数值类型是不可变对象,不可变意味着不可原处修改。假如a = 3333,那么现在内存中会有一个内存块保存数值对象3333,如果修改它,比如对它加上1操作a += 1,python将创建一个新的内存块用来保存新的数值对象3334,而不是在3333那个内存块中直接修改为3334,所以那个原始的数值3333就被丢弃了,它会等待垃圾回收器去回收。
觉得文章还可以的话不妨收藏起来慢慢看,有任何意见或者看法欢迎大家评论!