def stay (x): #模型函数
dayup = 1.00 #初始水平值
day = 0 #10天休息一天
cycle = 0 #周期
for i in range(365):
if day ==x:
cycle=0
day=0
else:
if cycle % 7 in [3,4,5,6]: #后四天能力增长
dayup = dayup * (1+0.01)
day = day + 1
cycle = cycle + 1
if cycle % 7 == 0:
cycle = 0
else:
day = day + 1
cycle = cycle + 1
print("每{}天休息一天365天后能力值:{:.2f}".format(x,dayup))
print(cycle)
stay(10) #调用模型函数
stay(15)
运行结果:
每10天休息一天365天后能力值:3.72
2
每15天休息一天365天后能力值:6.18
6
在这里参考了这位博主的答案Python语言程序设计基础 第二版(嵩天著)课后答案第三章(程序练习题)_小了白了兔i的博客-CSDN博客,但是看了之后感觉不太对劲,之后看了好多代码运行出来结果都不一样,仔细想了一下有人好像没有考虑循环的下表,有的人没有考虑每十天歇一天,其实这样就是11天一个循环。
这里的思路还是有些复杂了,完全可以用给定的天数做循环,直接进行代码的编写。