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