python3 数值类型
Python3 数值数据类型用于存储数值.
数据类型是不允许改变的, 这就意味着如果改变数字数值类型的值, 将重新分配内存空间.
以下实例在变量赋值时 Number 对象将被创建:
- number = 5
- print(number)
- print(id(number))
- number += 1
- print(number)
- print(id(number))
执行的结果:
由上图执行结果可知数值类型变量被重新赋值后分配的类存空间不同.
Python3 支持四种不同的数值类型:
整型(Int) - 通常被称为是整型或整数, 是正或负整数, 不带小数点. Python3 整型是没有限制大小的, 可以当作 Long 类型使用, 所以 Python3 没有 Python2 的 Long 类型.
浮点型(float) - 浮点型由整数部分与小数部分组成, 浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
复数 ( (complex)) - 复数由实数部分和虚数部分构成, 可以用 a + bj, 或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型.
布尔类型 (bool)- 布尔可以参加数值运算, True=1, False=0 , 例如: True + 1 返回的结果等于 2.
四种不用数值类型的引用:
- # 整形(int)
- num1 = 4
- print(type(num1))
- # 浮点型(float)
- num2 = 2.0
- num3 = 4.5
- print(type(num2))
- print(type(num3))
- # 布尔型(bool)
- num4 = True
- print(type(num4))
- # 复数型(bool)
- # 4 代表实部 7 代表虚部
- num5 = 4 + 7j
- # 2 代表实部 6 代表虚部
- num6 = complex(2, 6)
- print(type(num5))
- print(type(num6))
python 数值类型转换: 数据类型的转换, 你只需要将数据类型作为函数名即可.
int(x) 将 x 转换为一个整数.
float(x) 将 x 转换到一个浮点数.
complex(x) 将 x 转换到一个复数, 实数部分为 x, 虚数部分为 0.
complex(x, y) 将 x 和 y 转换到一个复数, 实数部分为 x, 虚数部分为 y.x 和 y 是数字表达式.
例如:
- num1 = int('45')
- # error
- num2 = int('te3')
python 数值类型转换的运算:
加运算(+)
- num1 = 1.2
- num2 =3
- num3 = num1 + num2
- print(num3)
- # res 4.3 float
减运算(-)
- number1 = 1
- number2 = 1.2
- number3 =number2 -number1
- # res 0.19999999999999996 float
问题来了, 我们的期望的结果是 0.2, 表明了 python3 中 计算结果是不 精确 的.
python3 的 精确运算:
方法 1:
将小数变成整数, 这样计算的结果也会是一个整数.
- number3 = 1
- number4 = 1.2
- num4 = ((number4 * 10) - (number3*10))/10
- # res = 0.2 float
方法 2:
引入 decimal 模块
- # 导入 decimal
- import decimal
- number3 = 1
- number4 = 1.2
- # decimal.Decimal(str) 参数必须是'str' 类型的 decimal.Decimal('数值类型')
- # 例如: decimal.Decimal('1.2') 或者 decimal.Decimal(str(1.2))
- # decimal.Decimal(1.2) 参与计算的结果还是不精确的
- num5 = decimal.Decimal(str(number4)) - decimal.Decimal(str(number3))
- # res 0.2 float
乘运算(*)
- # 乘法运算
- number5 = 5
- number6 = 3
- num6 = number5 * number6
- print(num6)
- # res 15
除运算(/)
来源: http://www.bubuko.com/infodetail-3535938.html