Reputation: 31
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
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
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