一、数字类型及操作
1.整数类型:可正可复,没有取值范围限制 -pow(x,y):计算x的y次幂,没有限制 -二进制表现形式:以0b(0B)开头 -八进制表现形式:以0o(0O)开头 -十六进制表现形式:以0x(0X)开头 2.浮点类型:带有小数点及小数的数字,常规计算取值范围可不管 -浮点数间运算存在不确定尾数,不是bug eg:>>>0.1+0.2 <<<0.30000000004 如何解决? -round(x,d):对x四舍五入,d是小数截取位数 -浮点数可采用科学计数法表示: 1.9.6e5:表示960000.0 2.4.3e-3:表示0.0043 3.复数类型:与数学概念一致,a+bj -eg:z= 1.23e-4+5.6e+89j -z.real获得实部 -z.imag获得虚部 4.数值运算操作符: +、-、*、/(数学除)、//(整除) +x:x本身 -y:y的负值 x%y:余数 x**y:x的y次幂 类型间可进行混合运算,生成结果为最宽数据类型 整数->浮点数->复数 5.数字运算函数 -abs(x):求x的绝对值 -divmode(x):商余(x//y,x%y) -pow(x,y[,z]):幂余(x**y)%z -round(x[,d]):四舍五入,d是保留小数的位数 -max(x1,x2,……):求最大值 -min(x1,x2,……):求最小值 -int(x):把x变成整数,舍弃小数部分 -float(x):把x变成浮点数,增加小数部分 -complex(x):把x变成复数,增加虚数部分
二、实例——天天向上的力量
1.天天向上:每天进步0.5%;天天向下:每天退步0.5%
#天天向上的力量
dayfactor = 0.005
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print("天天向上:{:.2f},天天向下:{:.2f}".format(dayup,daydown))
2.工作日的力量:一年365天,一周五个工作日,每天进步1%,一周两个工作日,每天退步1%
#工作日的力量:一年365天,一周五个工作日,每天进步1%,一周两个工作日,每天退步1%'''
dayup = 1.0
dayfactor = 0.01
for i in range(365):
if i%7 in [6,0]:#假定第一天为周一
dayup *= 1-dayfactor
else:
dayup *= 1+dayfactor
print("工作日的力量:{:.2f}".format(dayup))
3.工作日的努力:非工作日每天下降1%,工作日要每天努力多少才能达到每天都进步1%的效果
#工作日的努力:非工作日每天下降1%,工作日要每天努力多少才能达到每天都进步1%的效果
def dayup(df):
dayup = 1
for i in range(365):
if i%7 in [6,0]:
dayup *= 1-0.01
else:
dayup *=1+df
return dayup
dayfactor = 0.01
while dayup(dayfactor) < 37.78:
dayfactor += 0.001
print("每天要努力{:.3f}".format(dayfactor))
4.周末休息不下降呢?
#周末休息不下降呢?
def dayup(df):
dayup = 1
for i in range(365):
if i%7 in [6,0]:
continue
else:
dayup *=1+df
return dayup
dayfactor = 0.01
while dayup(dayfactor) < 37.78:
dayfactor += 0.001
print("周末不下降,每天要努力{:.3f}".format(dayfactor))
三、结论
1.天天向上:每天进步0.5%;天天向下:每天退步0.5%——>天天向上一年一共进步至6.17,天天向下一年一共退步至0.16。
2.工作日的力量:一年365天,一周五个工作日,每天进步1%,一周两个工作日,每天退步1%——>一年后进步至4.63,但在工作日付出了更多的努力
3.工作日的努力:非工作日每天下降1%,工作日要每天努力多少才能达到每天都进步1%的效果——>工作日要努力0.019才能有天天向上的效果,但是付出了四倍的努力。
4.周末休息不下降呢?——>也要付出0.015的努力,较天天向上的三倍。
5.总结:一天都不能休息,每天进步一点点。