如何在循环中构成一个以4周为一期的小循环,求解

劳伦斯必须每周管理窗口仓库的库存。第 1 周的库存为 1024 个窗口。此外,她设法获得了以下预测:在第 n 周,离开仓库(朝向商店)的窗口数量为 20 + n。此外,如果周数是 4 的倍数,则仓库会收到来自生产工厂的 500 个窗户的装运。所以第 1 周的股票是 1024,第 2 周的股票是 1024- (20 + 2) = 1002,第 3 周的股票是 1002- (20 + 3) = 979,第 4 周的股票是 979- ( 20 + 4) + 500 = 1455,以此类推。

本练习致力于设计一个程序,帮助 Laurence 进行库存管理并遵循以下描述的规范。

该程序应首先显示以下菜单:

到。股票预测
B. 最大库存
(q 退出)

如果劳伦斯输入q,程序就会停止。

如果 Laurence 输入a,程序会要求她输入第 n 周,然后显示从第 1 周到第 n 周的库存预测。例如:
选择一周: 6
第 1 周:库存 1024
第 2 周:库存 1002
第 3 周:库存 979
第 4 周:库存 1455
第 5 周:库存 1430
第 6 周:库存 1404

如果 Laurence 输入b,程序会要求她输入第 n 周,然后计算第 1 周和第 n 周之间的最大库存量(并告诉她将在哪周达到该最大库存量)。例如:
选择一周: 6
最大库存等于 1455,第 4 周达到

如果 Laurence 键入a、b或q 以外的内容,则程序会显示错误消息Incorrect choice,重新开始,并在选择无效时继续显示此消息。

A股票预测
B. 最大库存
Q(q 退出)
a
选择一周:7
第 1 周:库存 1024
第 2 周:库存 1002
第 3 周:库存 979
第 4 周:库存 1455
第 5 周:库存 1430
第 6 周:库存 1404
第 7 周:库存 1377

a. 股票预测
B. 最大库存
(q 退出)
b
选择一周:8
最大库存等于 1849,在第 8 周达到


def predict(n):
    stock = [1024]
    for i in range(1,n):
        if (i+1) % 4 ==0:
            stock.append(stock[i-1] - (20 + i+1) + 500)
        else:
            stock.append(stock[i-1] - (20 + i+1))
    return stock

def meanu():
    print("A 股票预测(a)")
    print("B 最大库存(b)")
    print("Q(q退出)")
meanu()
while True:
    menu = input()
    if menu == "a":
        n = int(input("选择一周:"))
        stock = predict(n)
        for i in range(len(stock)):
            print("第 {} 周:库存 {}".format(i+1,stock[i]))
    elif menu =="b":
        n = int(input("选择一周:"))
        stock = predict(n)
        mx = max(stock)
        idx = stock.index(mx)
        print("最大库存等于 {},第 {} 周达到".format(mx,idx+1))
    elif menu =="q":
        break
    else:
        print("Incorrect choice")
        meanu()
        continue


img