while loop ended before adding the maximum pressure

Viewed 36
dataList = []
pressuremin = 100
pressuremax = 3000
Pressureincrement = 500
currentPressure = 100
bubble=1500
pressureArr = []
rsArr = []
while currentPressure <= pressuremax:
    if currentPressure >= bubble:
        pressureArr.append(currentPressure)
        rsval=200
        rsArr.append(rsval)
    elif currentPressure < bubble:
        pressureArr.append(currentPressure)
        rsval = 400
        rsArr.append(rsval)
    elif currentPressure==pressuremax:
        pressureArr.append(currentPressure)
        if currentPressure>=bubble:
            rsval = 200
            rsArr.append(rsval)
        elif currentPressure < bubble:
            rsval =400
            rsArr.append(rsval)
    dataList.append([currentPressure, rsval])
    currentPressure += Pressureincrement
    print(dataList)

I have here while loop that started with min pressure and increase with increment value till reach maximum pressure

The problem here that the while loop end before reaching the maximum pressure (3000) I want the loop to evaluate the maximum pressure before ending

I tried to add elif currentPressure==pressuremax but it doesn't work

2 Answers

You have the following constants

pressuremax = 3000
Pressureincrement = 500
currentPressure = 100

So you are essentially looping over the Pressures from 100 to 3000 in increments of 500. The last pressure to run through the loop will be 2600, until the next iteration where currentPressure will increment to 3100, which then failes the while condition of:

while currentPressure <= pressuremax:

If you truly want to evaluate the maximum pressure no matter what, you can add the following to the end of the loop:

You can change

currentPressure += Pressureincrement

with

currentPressure = min(pressuremax, currentPressure + Pressureincrement)

You'll need to add a check before you increment currentPressure, and break if it's equal to the pressuremax.

Note: I see currentPressure==pressuremax is never evaluated since the elif will never be reached.

So something like this-

dataList = []
pressuremin = 100
pressuremax = 3000
Pressureincrement = 500
currentPressure = 100
bubble=1500
pressureArr = []
rsArr = []
while currentPressure <= pressuremax:
    if currentPressure >= bubble:
        pressureArr.append(currentPressure)
        rsval=200
        rsArr.append(rsval)
    elif currentPressure < bubble:
        pressureArr.append(currentPressure)
        rsval = 400
        rsArr.append(rsval)
    dataList.append([currentPressure, rsval])
    if currentPressure==pressuremax:
        break
    currentPressure = min(pressuremax, currentPressure + Pressureincrement)
    print(dataList)
Related