Python學習-------實例3:天天向上的力量

一年365天,每天進步1%,能剩多少?
1.013651.01^{365} = ?
一年退步1%,能剩多少?
0.993650.99^{365} = ?

問題1:一年365天,每天進步1‰,累計進步多少?
1.0013651.001^{365} = ?
每天退步1‰,累計退步多少?
0.9993650.999^{365} = ?

# daydayup Q1.py
dayup = pow(1.001, 365)
daydown = pow(0.999, 365)
print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))
向上:1.44, 向下:0.69

問題2:一年365天,每天進步5‰,累計進步多少?
每天退步5‰,累計退步多少?

# daydayupQ2.py
dayfactor = 0.005
dayup = pow(1+dayfactor, 365)
daydown = pow(1-dayfactor, 365)
print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))
向上:6.17, 向下:0.16

引入變量,方便編寫程序

問題3:工作日的力量
一年365天,一週5個工作日,每天進步1%
一年365天,一週2個休息日,每天退步1%
這種工作日的力量,如何呢?
用數學思維,轉爲計算機程序解決問題的計算思維。
365天,多少星期?每個星期的數學模型。

# daydayupQ3.py
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%。休息日每天下降1%、一年後,成爲自己的4.63倍。

第四問:工作日的努力
工作日模式要努力到什麼水平,才能與每天努力1%一樣?
A君:一年365天,每天進步1%,不停歇
B君:一年365天,每週工作5天休息2天,休息日下降1%,要多努力呢?
讓計算機完成這項任務,計算機速度快。
for … in … def… while…(“笨辦法”試錯)
在這裏插入圖片描述從程序設計來講,我們需要一段程序,根據不同的努力值,來計算工作日模式下的累積效果。爲了複用這段代碼,我們編寫函數。

 # daydayupQ4.py
# 根據df參數計算工作日力量的函數,
# 參數不同,這段代碼可共用def保留字定義於函數
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 保留字判斷調劑是否成立
# 條件成立時循環執行
while dayUP(dayfactor) < 37.78:
    dayfactor+=0.001
print("工作日努力的參數是:{:.3f}".format(dayfactor))
      
工作日努力的參數是:0.019

可知,我們每天要努力到1.9%。才能與465模式每天1%相同。

在這裏插入圖片描述
天天向上的力量–舉一反三
問題三:我們模擬工作日的狀態
拋棄數學思維,引入計算思維。
計算思維是抽象和自動化相結合的結果。
抽象去抽象問題的形式化邏輯,自動化是將抽象的邏輯自動化完成。
由於計算機有很強的算力,這種抽象和自動化將帶來問題的快速求解。
問題四 用笨辦法 試錯。通過定義函數,並帶有判斷的循環語句,進行不斷試錯,直到找到我們想要的結果。這也是計算機強大算力通過程序的一種體現。

  • 實例雖然僅包含8~12行代碼,但包含很多語法元素
  • 判斷條件循環、次數循環、分支、函數、計算思維
  • 清楚理解這些代碼能夠快速入門Python語言
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章