Day 2019.5.13
数据类型
数字类型及操作
整数类型(integer)
- 可正可负,没有取值范围限制
例如:
pow(x,y) ##计算x^y
>>> pow(2,100)
1267650600228229401496703205376
- 四种进制
1.十进制
2.二进制
3.八进制
4.十六进制
浮点数类型(real number)
- 与数学中的实数概念一致
1.带有小数点及小数的数字
2.浮点数取值范围和小数精度都存在着限制,但一般可忽略 - 浮点数之间运算存在不确定尾数
>>> 0.1+0.4
0.5
>>> 0.1+0.2
0.30000000000000004
>>> 0.1+0.2 == 0.3
False
对于第三种情况可以使用round(x,d)
函数来解决,作用是对x四舍五入,d是小数截取位数
>>> round(0.1+0.2,1) == 0.3
True
- 科学计数法
字母e或E作为幂的符号,以10为基数,格式为<a>e<b>
4.3e-3=0.0043
9.6E5=960000.0
复数类型(complex number)
- 与数学中复数的概念一致
数学中虚数单位为i
举个?
>>> z = 1.2345e-3+4.562j
>>> z.real ##获得实部
0.0012345
>>> z.imag ##获得虚部
4.562
>>>
tip:实际上复数用的不多。。。。
数值运算操作符
- 这个内容很实用
- 数字类型的关系
不同类型的数字可以混合运算,生成结果为‘最宽’类型
窄 整数->浮点数->复数 宽
举个?
>>> 123+4.0
127.0 ##(整数+浮点数=浮点数)
数值运算函数
- 这个也很实用
实例:天天向上
#daydayup.py
#每天进步0.1%,退步0.1%
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print('向上:{:.2f},向下:{:.2f}'.format(dayup,daydown))
>>> 向上:1.44,向下:0.69
#0.5%和1%的问题
dayfactor = 0.005 ##下次只需修改变量值
dayup = pow(1+dayfactor, 365)
daydown = pow(1-dayfactor, 365)
print('向上:{:.2f},向下:{:.2f}'.format(dayup,daydown))
>>> 向上:6.17,向下:0.16
##工作日问题
#工作日增加,休息日减少
dayup = 1.0
dayfactor = 0.01
for i in range(365):
if i % 7 in [6,0]:
dayup = dayup * (1-dayfactor)
else:
dayup = dayup * (1+dayfactor)
print('工作日的力量:{:.2f}'.format(dayup))
>>> 工作日的力量:4.63
#工作日要努力到什么水平,才能和每天努力1%一样?
#设A一年365天,每天进步1%,不休息
#设B一年365天,做五休二,休息日下降1%
#Q4
def dayup(df): ##定义函数
dayup = 1
for i in range(365):
if i% 7 in [6,0]:
dayup = dayup*(1-0.01)
else:
dayup = dayup * (1+df)
return dayup
dayfactor = 0.01
while dayUP(dayfactor) < 37.78: ##循环直至条件成立
dayfactor = dayfactor +0.001 #dayfactor +=0.01
print('工作日需要努力:{:.2f}'.format(dayfactor))
>>> 工作日需要努力:0.019