使用最小和最大条件的While循环Python

时间:2019-11-24 11:07:11

标签: python if-statement while-loop logic conditional-statements

我想对汽车收费,但最终要收取至少75%的费用,如果价格为正,我希望它继续收费,但不能超过最高100%。价格表是我每次充电(或决定不充电)时的价格。

这就是我到目前为止所拥有的:

maxF = 100
minF = 75
SoC = 55
i = 0
chargeRate = 10
price = [2,-2,3,4]

while SoC < minF:
   if price[i] > 0:
       SoC += chargeRate
       i += 1
   # if there is no time left (no prices available), I have to charge in order to reach 75%
   elif (minF - SoC)/chargeRate <= (len(price) - i):
       SoC += chargeRate
       i += 1
   else:
       i += 1
print(SoC)

在这段代码中,汽车向价格2和3收费,但不向价格4收费。在超过75%之后,我不知道如何为汽车继续充电。

我很高兴提出任何建议。

非常感谢, 埃琳娜(Elena)

1 个答案:

答案 0 :(得分:2)

据我了解,您应该尝试以下代码:

 while SoC <= 100:
   if (i < len(price)) and (SoC < 75 or price[i] > 0):
       SoC += chargeRate
   else:
       break
   i+=1
 print(SoC)

这应该为您工作。我不确定您要用这条线做什么

elif (minF - SoC)/chargeRate <= (len(price) - i):