天天向上的力量python实例(举一反三)
实例1:
一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高0.1%,没有学习实能力值相比前一天下降0.1%。
问:每天努力和每天放任,一年下来相差多少呢?
分析:天天向上的力量=(1+0.001)^365,天天放任的力量=(1-0.001)^365
程序代码:
1 #DayDayUp1.py 存储文件名称 2 import math 3 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 import math 2 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 def dayup(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 return dayup 9 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语言
风格