你的result函数的return b应该写在for循环外面,写到里面第一个i就直接return结束函数了
你好,你程序里面没有定义a变量引起while未运行,代码如下修改即可
n = 1.0
a = 1
for i in range(365):
a *= (1 + 0.01)
def result(dayfactor):
b = 1.0
for i in range(365):
if i%7 in [6,0]:
b *= (1 - 0.01)
else:
b *=(dayfactor+1)
return b
dayfactor=0.01
while result(dayfactor)<a:
dayfactor += 0.001
print('工作的努力参数是:{: .3f}'.format(dayfactor))
有帮助请采纳,有问题继续交流,你的采纳是对我回答的最大的肯定和动力