Home > other >  when first if statement true continue with next if statement
when first if statement true continue with next if statement

Time:02-09

python 3.8.11

I want to call the function num_okay in another file. and I want to return the specific "solu" for each number if the if statement is true.

rn it's only returning the first if statement. but I want it to return all the if statements that are correct, not only the first time

and if the first if statement is false I want to continue running the next if statement

thankss

numberA=1

numberB=2

numberC=3

numberD=4

def num_okay():

    if numberA < 20 or numberA > 30:
        solu= 'numberA is okay'
        return solu

    if numberB < 20 or numberB > 30:
        solu = 'numberB is okay'
        return solu

    if numberC < 20 or numberC > 30:
        solu = 'numberC is okay'
        return solu

    if numberD < 20 or numberD > 30:
        solu = 'numberD is okay'
        return solu

    else:
        return "NO number is okay"

CodePudding user response:

You could do it using "elif" instead of "if". Which means "else, if..."

It would look like this:

    if numberA < 20 or numberA > 30:
        solu= 'numberA is okay'
        return solu

    elif numberB < 20 or numberB > 30:
        solu = 'numberB is okay'
        return solu

    elif numberC < 20 or numberC > 30:
        solu = 'numberC is okay'
        return solu

    elif numberD < 20 or numberD > 30:
        solu = 'numberD is okay'
        return solu

    else:
        return "NO number is okay"

CodePudding user response:

numberA=1

numberB=2

numberC=3

numberD=4

def num_okay():
    solu=""
    if numberA < 20 or numberA > 30:
        solu= 'numberA is okay'
    

    if numberB < 20 or numberB > 30:
        solu = solu ' numberB is okay'
    

    if numberC < 20 or numberC > 30:
        solu = solu ' numberC is okay'
    

    if numberD < 20 or numberD > 30:
        solu = solu ' numberD is okay'
    

    else:
        return "NO number is okay"
    
    
    return solu
    
print(num_okay())
    

It's not that it is not entering other if statements you return it in 1st if so it doesn't go to the rest here I have simply concated the string so it give 1 string with all the data from if statements hope this does what you were looking for

CodePudding user response:

If you want to return all statements that are True, you could do the following:

numberA=1

numberB=2

numberC=3

numberD=4

result = []

def num_okay():

if numberA < 20 or numberA > 30:
    solu= 'numberA is okay'
    result.append(solu)

if numberB < 20 or numberB > 30:
    solu = 'numberB is okay'
    result.append(solu)

if numberC < 20 or numberC > 30:
    solu = 'numberC is okay'
    result.append(solu)

if numberD < 20 or numberD > 30:
    solu = 'numberD is okay'
    result.append(solu)

else:
    result.append("NO number is okay")
return result

print(num_okay())

The above code return list of all matching statements. You could later convert it as per the use-case

  •  Tags:  
  • Related