Python学习-------实例3:天天向上的力量

一年365天,每天进步1%,能剩多少?
1.0 1 365 1.01^{365} 1.01365 = ?
一年退步1%,能剩多少?
0.9 9 365 0.99^{365} 0.99365 = ?

问题1:一年365天,每天进步1‰,累计进步多少?
1.00 1 365 1.001^{365} 1.001365 = ?
每天退步1‰,累计退步多少?
0.99 9 365 0.999^{365} 0.999365 = ?

# daydayup Q1.py
dayup = pow(1.001, 365)
daydown = pow(0.999, 365)
print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))
向上:1.44, 向下:0.69

问题2:一年365天,每天进步5‰,累计进步多少?
每天退步5‰,累计退步多少?

# 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

引入变量,方便编写程序

问题3:工作日的力量
一年365天,一周5个工作日,每天进步1%
一年365天,一周2个休息日,每天退步1%
这种工作日的力量,如何呢?
用数学思维,转为计算机程序解决问题的计算思维。
365天,多少星期?每个星期的数学模型。

# 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))
向上:4.63

如果工作日努力,每天提高1%。休息日每天下降1%、一年后,成为自己的4.63倍。

第四问:工作日的努力
工作日模式要努力到什么水平,才能与每天努力1%一样?
A君:一年365天,每天进步1%,不停歇
B君:一年365天,每周工作5天休息2天,休息日下降1%,要多努力呢?
让计算机完成这项任务,计算机速度快。
for … in … def… while…(“笨办法”试错)
Python学习-------实例3:天天向上的力量_第1张图片从程序设计来讲,我们需要一段程序,根据不同的努力值,来计算工作日模式下的累积效果。为了复用这段代码,我们编写函数。

 # daydayupQ4.py
# 根据df参数计算工作日力量的函数,
# 参数不同,这段代码可共用def保留字定义于函数
def dayUP(df):
    dayup = 1
    for i in range(365):
        if i%7 in [6, 0]:
             dayup = dayup*(1-0.01)
        else:
            dayup = dayup*(1+df)
    return dayup

dayfactor = 0.01
# while 保留字判断调剂是否成立
# 条件成立时循环执行
while dayUP(dayfactor) < 37.78:
    dayfactor+=0.001
print("工作日努力的参数是:{:.3f}".format(dayfactor))
      
工作日努力的参数是:0.019

可知,我们每天要努力到1.9%。才能与465模式每天1%相同。

Python学习-------实例3:天天向上的力量_第2张图片
天天向上的力量–举一反三
问题三:我们模拟工作日的状态
抛弃数学思维,引入计算思维。
计算思维是抽象和自动化相结合的结果。
抽象去抽象问题的形式化逻辑,自动化是将抽象的逻辑自动化完成。
由于计算机有很强的算力,这种抽象和自动化将带来问题的快速求解。
问题四 用笨办法 试错。通过定义函数,并带有判断的循环语句,进行不断试错,直到找到我们想要的结果。这也是计算机强大算力通过程序的一种体现。

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

你可能感兴趣的:(#,python基础示例)