Pyhon经典案例“天天向上的力量”

问题由浅入深,帮你更好理解Python

天天向上的力量 问题1:
1‰的力量

- 一年365天,每天进步1‰,累计进步多少呢? 
- 一年365天,每天退步1‰,累计剩下多少呢?

上代码:

#DayDayUp
dayup = pow(1.001, 365)
daydown = pow(0.999, 365)
print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))

天天向上的力量 问题2:
5‰和1%的力量

- 一年365天,每天进步5‰或1%,累计进步多少呢? 
- - 一年365天,每天退步5‰或1%,累计剩下多少呢?

上代码:

#DayDayUp
dayfactor = 0.05        #通过改变dayfactor的值来改变进步或退步百分比
dayup = pow(1+dayfactor, 365)
daydown = pow(1-dayfactor, 365)
print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))

天天向上的力量 问题3:
工作日的力量

- 一年365天,一周5个工作日,每天进步1% 
- 一年365天,一周2个休息日,每天退步1% 
- 这种工作日的力量,如何呢?

上代码:

#DayDayUp
dayup = 1
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:
工作日的努力

- 工作日模式要努力到什么水平,才能与每天努力1%一样? 
- - A君: 一年365天,每天进步1%,不停歇 
- - B君: 一年365天,每周工作5天休息2天,休息日下降1%,要多努力呢?
for..in.. (计算思维) def..while.. ("笨办法"试错)

上代码:

#DayDayUp
def dayUp(df):                    #此处的def是定义函数的关键字
    dayup = 1
    for i in range(365):
        if i % 7 in [6,0]:
            dayup*=(1-0.01)
        else:
            dayup*=(1+df)
    return dayup
dayfactor = 0.001
while dayUp(dayfactor) < 37.78:       #while 是循还判断的关键字
    dayfactor+=0.001
print("{:.3f}".format(dayfactor))

举一反三 天天向上的力量:

- 实例虽然仅包含8-12行代码,但包含很多语法元素 
- 条件循环、计数循环、分支、函数、计算思维 
- 清楚理解这些代码能够快速入门Python语言

最后提几个question供大家发散思维,进一步理解:

- 工作日模式中,如果休息日不下降呢? 
- 如果努力每天提高1%,休息时每天下降1‰呢? 
- 如果工作3天休息1天呢?

你可能感兴趣的:(Python经典案例)