我想不用def试一下,但是结果错了,逻辑上哪里有问题?

[图片]
关注者
4
被浏览
549
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

在up函数中,每次进入for循环前,day都被初始化为数值1

而你去掉up函数后,day变成了一个while循环外部的一个全局变量,在每次进入for循环时,没有被初始化,应该使用另外一个全局变量来代替这个while内部的变量day作为条件判断,参考:

#/usr/bin/python3

a = 0
# 这个值只要是小于37.78的数字即可,while的第一次循环便会覆盖这个值
conditon = 0

while conditon < 37.78:
    a = a + 0.001
    day = 1
    for i in range(365):
        if i % 7 in [6, 0]:
            conditon = day * 0.99
        else:
            conditon = day * (1 + a)
print("工作日的努力参数是:{:.3f}".format(a))

由于运行需要的时间太长,这里就不展示运行结果了,仅提供上面的代码供你参考。