天天向上的力量python实例(举一反三)
实例1:
一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高0.1%,没有学习实能力值相比前一天下降0.1%。
问:每天努力和每天放任,一年下来相差多少呢?
分析:天天向上的力量=(1+0.001)^365,天天放任的力量=(1-0.001)^365
程序代码:
1 #DayDayUp1.py 存储文件名称
2 importmath3 dayup=math.pow((1.0+0.001),365)#提高0.001
4 daydown=math.pow((1.0-0.001),365)#放任0.001
5 print("向下:{:.2f},向下:{:.2f}.".format(dayup,daydown))
运行结果:
向下:1.44,向下:0.69.
实例2:
若将实例1的努力值改为提高0.5%,1%呢?
分析:每天努力的因素会根据需求的不同而不断变化,所以,新代码中可以定义一个dayfactor变量表示这个值;这样每次变化只需更改dayfactor变量值即可。
程序代码:
1 importmath2 dayfactor=0.005
3 dayup=math.pow((1.0+dayfactor),365)#提高0.005
4 daydown=math.pow((1.0-dayfactor),365)#放任0.005
5 print("向下:{:.2f},向下:{:.2f}.".format(dayup,daydown))
运行结果:
向下:6.17,向下:0.16.
实例3:
一周5个工作日努力,提高1%;仅在周末放任两天,能力值下降1%
分析:工作日水平变化N*(1+0.01);非工作日N*(1-0.01);采用for in去遍历365天的计算思维
程序代码:
1 #DayDayUp365.py 存储文件名称
2 dayup,dayfactor=1.0,0.01
3 for i in range(365):4 if i%7 in [6,0]:5 dayup=dayup*(1-dayfactor)6 else:7 dayup=dayup*(1+dayfactor)8 print("向上5天向下2天的力量:{:.2f}".format(dayup))
运行结果:
向上5天向下2天的力量:4.63
实例4:
根据实例3,若要一年后达到的努力值与每天努力1%的效果一样,工作日要努力到什么程度呢?
分析:每天努力1%,一年后的努力值为:37.78;通过定义一个dayup函数来求解
程序代码:
1 defdayup(df):2 dayup=1.0
3 for i in range(365):4 if i%7 in [6,0]:5 dayup=dayup*(1-0.01)6 else:7 dayup=dayup*(1+df)8 returndayup9 dayfactor=0.01
10 while (dayup(dayfactor)<37.78):11 dayfactor+=0.001
12 print("每天努力的参数是:{:.3f}".format(dayfactor))
运行结果:
每天努力的参数是:0.019
举一反三:
问题的变化:
(1)工作日努力水平提高1%,休息日水平不下降呢?
(2)工作3天休息1天,能力值的变化?
(3)工作努力值提高1%,休息日下降0.1%呢?
等等这些问题,读者可以在下面自己尝试一下这些问题的变化
1.实例虽然仅包含8-12行代码,但包含很多的语法元素
2.判断条件循环while ,次数循环for ,分支if else,函数def dayup(df)
3.清楚理解这些代码能够快速入门python语言
风格