基本数据类型
数字类型
整数
没有取值限制! 这个时python的数据类型的一个特点,整数没有溢出的概念。
所以当使用 pow(x,y)
时,想算多大算多大
python提供了4种进制表示,
十进制:(正常书写),123,456
二进制:(以0b或者0B开头),0b010 ,-0B101
八进制:(以0O或者0o开头 ,注意,是零欧不是零零),0o123,-0o456
十六进制:(以0X 或者0x 开头),0x9a,0X89
浮点数
带有小数点以及小数的的数字,就是浮点数。
浮点数的取值范围和小数精度都存在限制,但常规计算可以忽略
取值范围数量级约 -10^308^ - 10^308^ ,精度数量级10^-16^
精度数量级就是两个小数之间的差别,最多可以到10-16
浮点数之间的运算存在不确定尾数!这不是一个bug,Java也存在,C++也存在
例如0.1+0.2 的结果是 0.300000000004这个是计算机对数据运算的原理造成的。
计算机在表示数字时,使用的是二进制,Python使用的是53位二进制表示小数部分,10进制与2进制没有精准的对等关系,所以0.1是一个无限接近0的一个数,
所以程序执行 0.1 + 0.2 == 0.3 输出位False
所以我们需要round函数,对比两个浮点数是否相等时,要这样写,round(0.1+0.2,1) == 0.3
round 是进行四舍五入的函数,
round(x,d) : 表示对x进行四舍五入,d是小数截取的位数,也就是保留几位小数
不确定位数一般发生在10-16 左右才会产生,所以round方法非常有限
幂的表示
使用e或者E 表示幂数
<底数> e/E <幂数>
例如:3e10 表示的就是310
复数
**只有Python 提供了复数**,python的复数与数学种复数一致
数值操作运算符
+,- ,* ,/ ,// (整数除), %
这里要说明的是python中的除法,/ 等到的结果是浮点型,所以10 / 3 = 3.33333,如果要获得整数那么就是用 // ,那么10 // 3 = 3
python提供的 x**y ,代表着xy 注意当,y为正数时为幂运算,等同pow(x,y),当y为小数时,就是开方了,例如 10 **0.5 = 根号下10
增强赋值语句,例如:x += y - > x = x+y 其他符号都具备这个功能
不同的数据类型混合运算时,会向上兼容,整数 -》 浮点数 -》 复数
数学运算函数
类型转换函数
练习:天天向上的力量
每天进步一点点,进步1%
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print("向上:{:.2f} , 向下:{:.2f} ".format(dayup,daydown))
使用抽象思维编写天天向上的力量
dayfactor = 0.01
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print("向上:{:.2f} , 向下:{:.2f} ".format(dayup,daydown))
工作日向上的力量,周一到周五进步,周六周天休息退步
dayup = 1
dayfactor = 0.01
for i in range(365):