天天向上python题目答案_Python入門習題3.天天向上

例3.1 一年365天,以第一天的能力值為基數,記為1.0,當好好學習時能力值相比前一天提高1%,當沒有學習時能力值相比前一天下降1%。每天努力(dayup)和每天放任(daydown),一年下來的能力值相差多少呢?

解:

1 dayup = (1.0 + 0.01)**365

2 daydown = (1.0 - 0.01)**365

3 print("每天努力:{:.2f},每天放任:{:.2f}".format(dayup,daydown))

每天努力:37.78,每天放任:0.03

例3.2 一年365天,一周5個工作日,如果每個工作日都很努力,可以提高1‰,僅在周末放任一下,能力值下降1‰,一年下來能力值power為多少呢?(采用循環方式實現,假設第365天是周日,power初始值為1)

解:根據數學知識可知,如果第365天是周日,那么第一天也是周日。

根據題意用循環方式實現,已知工作日與周期日每7天一循環,天數與是否工作成周期函數,周期為7。此處采用for循環來實現。for i in range(365).星期、天數、i值等關系參見下表格。

星期

天數

i值

i%7的值

1

0

0

2

1

1

......

......

......

......

7

6

6

8

7

0

可見,休息日i%7值為0或6。由此代碼如下:

1 power = 1

2 for i in range(365):3 if i % 7 in [0,6]:4 power = power * (1 - 0.01)5 else:6 power = power * (1 + 0.01)7 print("每周向上5天向下2天的能力值:{:.2f}".format(power))

每周向上5天向下2天的能力值:4.63

例3.3 根據3.2條件,工作日需要努力到什么程度,一年后的水平才與每天都努力1%取得的效果相同呢?

解:將工作日努力的能力值提高數設為 x ,設置函數Power(x) ,當函數Power(x)的值不小於37.78時輸出 x .

這里采用通過多次運算求解問題的解決方案,即程序從低到高逐漸增加每天努力的 x ,最后找到合適的 x

1 defPower(x):2 power = 1.0

3 for i in range(365):4 if i % 7 in [0,6]:5 power = power * (1 - 0.01)6 else:7 power = power * (1 +x)8 returnpower9 x = 0.01

10 while (Power(x) < 37.78):11 x += 0.01

12 print("每天努力的參數是:{:.3f}".format(x))

每天努力的參數是:0.020

博客參考《Python程序設計基礎》高等教育出版社(第2版) 嵩天,禮欣,黃天羽著

推薦與上述教材配套的北京理工大學 嵩天,禮欣,黃天羽老師的MOOC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值