欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python:天天向上的力量

程序员文章站 2022-05-18 08:08:20
...

最近在看python程序设计,看到“天天向上的力量”这一节感觉还挺有意思,打算做个笔记。把其中的精髓整理出来。

最后一个问题:一个人,一年365天,每天进步1%,不停歇,另一人,一年365天,每周工作5天,周末休息2天,休息日下降1%,要多努力才能与第一个人进步得一样?

以下是一个人365天每天都进步1%,一年下来结果

dayfactor = 0.01
dayup = pow(1+dayfactor,365)
print("天天向上:{:.2f}".format(dayup))

结果为37.78

那么接下来就可以写完整的代码了,自定义一个函数,初始值dayfactor为0.01,dayfactor 0.001向上加,直到能追赶上37.78,然后跳出输出当前的dayfactor值

def dayUP(df):
    dayup = 1.0
    for i in range(365):
        if i % 7 in [6, 0]:
            dayup = (1-0.01) * dayup
        else:
            dayup = (1+df) * dayup
    return dayup
    
dayfactor = 0.01

while dayUP(dayfactor)<37.78:
    dayfactor += 0.001
print("工作日的努力参数是{:.3f}".format(dayfactor))

最后dayfactor为0.019,也就是说,如果一个人一年每天都在进步1%,那么每周周末休息的人,如果还退步,那么平常工作日就要付出两倍的努力。
那么接下来我们延申一下,如果周末休息,但是不进步也不下降,那么,平常工作日需要进步多少,才能与每天都在进步的持平。代码稍微改动如下:

def dayUP(df):
    dayup = 1.0
    for i in range(365):
        if i % 7 in [6, 0]:
            dayup = 1 * dayup
        else:
            dayup = (1+df) * dayup
    return dayup
dayfactor = 0.01

while dayUP(dayfactor)<37.78:
    dayfactor += 0.001
print("工作日的努力参数是{:.3f}".format(dayfactor))

运行结果为0.015,也就是说,一周只进步五天的人,要比每天都进步的人多付出一半的努力,才能赶上每天都在进步的人。

相关标签: 练习 python