3.2实例3:天天向上的力量
基本问题:持续的价值
一年365天,每天进步1%,累计进步多少呢?
1.01^365
一年365天,每天退步1%,累计剩下多少呢?
0.99^365
数学公式可以求解,似乎没有必要用程序
如果是“三天打鱼两天筛网”呢?
如果是“双休日又不退步”呢?
问题1:千分之一的力量
一年365天,每天进步千分之一,累计进步多少呢?
1.001^365
一年365天,每天退步千分之一,累计剩下多少呢?
0.999^365
#daydayupQ1.py
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
向上的力量是1.44,向下的力量是0.69
问题2:千分之五和1%的力量
每天进步千分之五和1%,各是多少呢?
每天退步千分之五和1%,各是多少呢?
#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
修改dayfactor为0.01
结果:向上37.78,向下0.03
千分之五的力量,惊讶! 1%的力量,惊人!
问题3:工作日的力量
一年365天,一周5个工作日,每天进步1%
一年365天,一周2个休息日,每天退步1%
这种工作日的力量,如何呢?
在这里我们要从数学思维转换为计算机思维
需要使用 for···in···函数
#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))
采用循环模拟365天的过程
抽象 + 自动化
工作日的力量是:4.63 (按照百分之一的力量再提高哦,三天打鱼两天筛网是不行的)
千分之一的力量是:1.44
千分之五的力量是:6.17
百分之一的力量是:37.78
工作日的力量只不过是再千分之一到千分之五之间而已,看来自己的学习与成长还是不能懈怠啊
问题4:工作日的努力
工作日模式努力到什么水平,才能与每天努力1%一样?
A君:一年365天,每天进步1%,不停歇
B君:365天,眉头皱工作5天休息2天,休息日下降1%,要多努力呢?
For···in···(计算思维)
Def···while···(“笨办法”试错)
计算机另外一大法宝——计算机的运算速度
运行结果
>>>0.019
工作日模式下,每天要努力到1.9%,
相当于365模式每天1%的一倍!
反过来每天进步0.019^365 = 962.89 相当于一年进步了1000倍
GRIT:perseverance and passion for long-time goals
GRIT:坚毅,对长期目标的持续激情及持久耐力
GRIT:是获得成功最重要的因素之一,牢记天天向上的力量
实例虽然只有8-12行代码,但是包含很多语法元素
判断条件循环、次数循环、分支、函数、计算思维
清楚理解这些代码能够快速入门python语言
举一反三
工作日模式中,如果休息日不下降呢?
如果努力每天提高1%,休息时每天下降千分之一呢?
如果工作3天休息1天呢?
“三天打鱼,两天筛网”呢?
多一份努力呢?
多一点懈怠呢?
野兔
2019.4.15