一、概述
- 整数类型
- 浮点类型
- 复数类型
- 数值运算操作符
- 数值运算函数
二、整数类型
如果学给数学的化都可以理解,就是与数学中的整数概念一致
-
可正可负,没有取值范围限制
-
pow(x, y) 函数,计算xy,想幂多少就幂多少
pow(2, 10) # 1024 pow(2, pow(2,5)) # 4294967296
-
四种进制表示形式
- 十进制: 1024,8,32
- 二进制:以0b或0B开头:ob0001, 0B0010
- 八进制: 以0o或0O开:0o123, 0O321
- 十六进制: 以0x或0X开头:0x5b, 0X6a
三、浮点数类型
与数学中实数的概念一致
- 带有小数点及小数的数字
- 浮点数取值范围和小数精度都在存在限制,但常规计算可以忽略
- 取值范围数量级约-10308至10308,精度数量级10-16
浮点数间运算存在不确定尾数,不是bug
0.1 + 0.3 # 0.4 0.1 + 0.2 # 0.30000000000000004
-
0.1: 53位二进制表示小数部分,约1016
- 0.00011001100110011001100110011001100110011001100110011010 (二进制表示)
- 0.1000000000000000055511151231257827021181583404541015625 (十进制表示)
二进制表示小数,可以无限接近,但不完全相同
0.1+0.2
:结果无限接近0.3, 但可能存在尾数0.1 + 0.2 == 0.3 # False round(0.1+0.2, 1) == 0.3 # True
3.1 round()函数
- round(x, d):对x四舍五入, d表示小数要截取的位数
- 浮点数间运算比较需要使用round()函数辅助
- 不确定尾数一般发生再10^16左右, round()
3.2 科学发表示浮点数
- 使用字母e或E作为幂的符号,以10为基数,格式如下:
<a>e<b>
,表示a*10b
- 例如:
4.3e-3
值为0.0043
,9.6E5
值为960000.0
关于Python浮点数,需要知道多些。
- 取值范围和精度基本无限制
- 运算存在不确定尾数 round()
- 科学计数法表示
四、复数类型
与数学中复数的概念一致
如果x2x2 = -1,那么x的值什么?
- 定义
j = −1
,以此为基础,构建数学体系 a+bj
被称为复数,其中,a是实部,b是虚部
4.1 复数实例
z = 1.23e-4+5.6e+89j
- 实部是什么?
z.real
获得实部 - 虚部是什么?
z.imag
获得虚部
五、数值运算操作
5.1 一元操作符
操作符是完成运算的一种符号关系
操作符及使用 描述信息 x + y 加,x与y之和 x - y 减,x与y之差 x * y 乘,x与y乘积 x / y 除,x与y之商 eg: 10 / 3 结果为3.33333333333 x // y 整数除,x与y之整数的商, 10 // 3 结果为:3 +x x的本身 -y y的负值 x % y 余数,模运算, 10 % 3 结果为:1 x ** y 幂运算,x的y次幂,xy ,当y为小数是,开放运算,10**0.5,结果为 :x1/2 5.2 二元操作符
二元操作符有对应的增强赋值操作符
增强操作符及使用 描述信息 x op= y 即 x = x op y ,其中,op为二元操作符 二员操作符有以下:
x += y
,x -= y
,x *= y
,x /= y
,x // y
,x %= y
,x **= y
x = 3.1415 x **= 3 # 与 x = x **3 等价 # 31.003533398375005
5.3数据类型的关系
类型间可进行混合运算,生成结果为"最宽"类型
- 三种类型存在一种逐渐"扩展"或"变宽"的关系:整数-->浮点数-->复数
- 例如:1234 + 4.2 = 1238.2(整数 + 整数 = 浮点数)
六、数值运算函数
一些以函数形式提供的数值运算功能
函数及使用 描述 abs(x) 绝对值,x的绝对值,abs(-1)结果为:1 divmod(x,y) 商余,即(x//y, x%y),同时输出商和余数,divmod(10,3)结果为(3,1) pow(x,y[,z]) 幂余,(x**y)%z, [...]表示参数z可省略,pow(3, pow(3, 99), 10000)结果为4587 round(x[,d]) 四舍五入,d是保留小数位数,默认值为0,round(1.234, 2)结果为:1.23 max(x1,x2,x3,...,xn) 最大值,返回x1,x2,x3,...,xn其中最大值,n不限,max(1,2,5,8,9)结果为:9 min(x1,x2,x3,...,xn) 最小值,返回其中x1,x2,x3,...,xn最小的值,你不限,min(3,4,6,8,0)结果为:0 int(x) 将x变成整数,舍弃小数部分,int(123.4)结果为123;int("123")结果为:123 float(x) 将x变成浮点数,增加小数部分,float(12) 结果为12.0; float("1.23") 结果为1.23 complex(x) 将x变成复数,增加虚数部分,complex(4) 结果为 4 + 0j
七、小结
- 整数类型的无限范围及4种进制表示
- 浮点数类型的近似无限范围、小尾数及科学计数法
- +、-、*、/、//、%、**、二元增强赋值操作符
- abs()、divmod()、pow()、round()、max()、min()
- int()、float()、complex()
八、练习
- 周一到周五进步0.01,然后双休日退步0.01,这个怎么计算
base = 1
factory = 0.01
for i in range(365):
if i % 7 == 6:
base *= (1-0.01)
elif i % 7 == 0:
base *= (1-0.01)
else:
base *= (1 + factory)
print("base:", base)