这里我们想要探讨的是,如我们有一定的基础,如初始值a=1,且一年365天每天都保持固定的速度(如1%)进步,问一年后,我们的累积效果是初始值的多少倍?
由上表可见,当每日进步速度为1%,365天后,累积效果是初始状态的(1+1%)^356倍。
为了方便地计算不同的“每日进步速度”对应的“累积效果”,可以通过编写一个函数进行计算。
注释:
①input()后的结果为字符串,如'0.01'。因此,在进行加减运算前需要将字符串转换为数值,可以通过eval()实现。eval()功能是将字符串两侧的引号去掉。
②pow()函数用于计算幂次,如pow(2,5)表示计算2的5次方。
③format()函数对数值进行格式化,更改显示模式。{0:%}中的0为索引号,表示format(dr,result)中的第一个参数(即dr)。%表示数据显示的格式为百分数。{1:.2f}中的1为索引号,表示format(dr,result)中的result。.2f表示数据保留两位小数。注意!不要忘了2f前面的那个点!!!!
问题2:已知初始值为1,如果,周一到周五(即工作日)以1%的速度进步,周末以1%的速度退步,则一年后累积效果是初始值的多少倍?
注释:
①range(365):表示从0取数,最大为364,共365个数。
②if i % 7 in [6,0]表示判断是否为周末。i%7表示i除以7的余数。%读作模。
问题3:已知小张周一到周日每天都以1%的速度进步,并坚持一年。小王周一到周五每天进步x,但周末每天退步1%,问:当x取什么值时,一年后小王可以赶超小张?
注释:
①x = 0.01,即将小王的工作日进步速度初始值设置为与小张的相同。
②x = x + 0.0001,其中的0.0001可以是任意的正的较小的小数,目的是逐渐地增大x的值,利用计算机超强的计算能力,将满足条件的x试出来。
参考资料:北京理工大学-嵩天-《Python语言程序设计》