3.4天天向上的力量习题

1、一年365天,初始水平值为1.0,每工作一天水平增加N,不工作时水平不下降,一周连续工作4天。(N=0.001、0.002…0.010)
注:单个输入输出的为法1、2;循环法为法3、4、5
法1(直接法):

import math
dayup=1.0
dayfactor=N
for i in range(365):
    if i%7 in [1,2,3,4]:
        dayup=dayup*(1+dayfactor)
        #print("{:.2f}".format(dayup))
    #print("{:.2f}".format(dayup))
print("年终值为{:.2f}".format(dayup))

易错点:注意print函数的缩进位置
法2(函数法):

import math
def dayUP(df):
    dayup=1.0
    for i in range(365):
        if i%7 in [1,2,3,4]:
            dayup=dayup*(1+df)
    return dayup
print("年终值为{:.2f}".format(dayUP(0.001)))

法3(range函数嵌套range函数):

import math
for N in range(1,11):
    df=N*0.001
    dayup=1.0
    for i in range(365):
        if i%7 in [1,2,3,4]:
            dayup=dayup*(1+df)
        else:
            dayup=dayup
#print("年终值为{:.2f}".format(dayup))
    print("年终值为{:.2f}".format(dayup))

需要注意的是:range函数不能有遍历浮点;以及print函数的缩进问题
法4(先定义函数,再range函数):

def Dayup(N):
    dayup = 1.0
    for i in range(365):
        if i%7 in [1,2,3,4]:
            dayup = dayup*(1+N)
        else:
            dayup = dayup
    print("年终值为:{:.2f}".format(dayup))
N = 0.001
for i in range(10):
    Dayup(N)
    N += 0.001

注意:这里定义的函数Dayup(N)最后不是return一个数,而是print一个字符串
法5(最简单):

N=0
while N<=0.01:
    N+=0.001
    dayup=1.0
    for i in range(365):
        if i%7 in (1,2,3,4):
            dayup=dayup*(1+N)
    print("年终值为{:.2f}".format(dayup))

2、一年365天,初始水平值为1.0,每工作一天水平增加N,不工作时水平不下降,一周连续工作5天。(N=0.001、0.002…0.010)

N=0
while N<=0.01:
    N+=0.001
    dayup=1.0
    for i in range(365):
        if i%7 in (1,2,3,4,5):
            dayup=dayup*(1+N)
    print("年终值为{:.2f}".format(dayup))

3、一年365天,初始水平值为1.0,每工作一天水平增加N,不工作时水平不下降,一周连续工作6天。(N=0.001、0.002…0.010)

N=0
while N<=0.01:
    N+=0.001
    dayup=1.0
    for i in range(365):
        if i%7 in (1,2,3,4,5,6):
            dayup=dayup*(1+N)
    print("年终值为{:.2f}".format(dayup))

4、一年360天,初始水平值为1.0,以每个月30天计算,在每个月月初连续10天里,每工作一天水平增加N,该月其他时间工作与否都不增加水平值。(N=0.001、0.002…0.010)

N=0
while N<=0.01:
    N+=0.001
    dayup=1.0
    for i in range(360):
        if i%30 in range(1,11):
            dayup=dayup*(1+N)
    print("年终值为{:.2f}".format(dayup))

注:题2、3、4均采用方法5

  • 15
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值