Angel
Angel

Reputation: 31

Where does the return statement go in an if statement inside a function

I'm writing an if/else statement inside a function where it requires 'return'. I am wondering where to write the 'return' statement

def fun(flo, seg_len, interval):
    data = []
    if seg_len==int(seg_len):
        new_ = [flo[i:i+segm_len] for i in range(0, len(flo)-len(flo) % seg_len , seg_len)]
        for i in range(len(new)):
            data.append(True)
            print(data)
 
    else:
            print('False')

fun(flo , seg, interval )

Upvotes: 0

Views: 470

Answers (2)

Qudus
Qudus

Reputation: 1520

Simply return after you have iterated and added all the values to disorder_status3. You can safely ignore the else since the line of code that prints corrupted wouldn't be hit if the code already returned something.

if segment_len==int(segment_len):
    new_flow_rate = [flow_rate... 
    for i in range(len(new_flow_rate)):
       disorder_status3.append(sym.has_sym
    return disorder_status3;
print('Corrupted input')

Upvotes: 1

DeusDev
DeusDev

Reputation: 548

It depends on what you want your function to behave, but in this case the return may be placed at the if/else level (after the function does what is supposed to).

def flow_rate_to_disorder_status(flow_rate, segment_len, interval, threshold):
    disorder_status3 = []
    if segment_len==int(segment_len):
        new_flow_rate = [flow_rate[i:i+segment_len] for i in range(0, len(flow_rate)-len(flow_rate) % segment_len , segment_len)]
        for i in range(len(new_flow_rate)):
            disorder_status3.append(sym.has_symptom(new_flow_rate[i], interval, threshold))
            print(disorder_status3)
 
    else:
            print('Corrupted input')
    return

flow_rate_to_disorder_status(flow_rate, segment_len, interval, threshold)

Upvotes: 1

Related Questions