天天向上的力量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語言
風格