# Issue

This Content is from Stack Overflow. Question asked by 4daJKong

I have two functions,and their structure like that,

``````def extract(input):
pass  #test the length of input, and the length changed over time

def checkif(s1):
r1 = extract(s1)
if len(r1) < 1:
r1 = extract(s1)
if len(r1) < 1:
r1 = extract(s1)
if len(r1) < 1:
r1 = extract(s1)
return r1
else:
return r1
else:
return r1
else:
return r1
``````

you see, the function of checkif is complex and I think it can be reduced, but how to reduce this structure? Any idea is helpful!

# Solution

If you need to limit it to 4 times, you could use a for-loop:

``````def checkif(s1):
for _ in range(3):
r1 = extract(s1)
if len(r1) >= 1:
return r1
return extract(s1)
``````

Notice I loop 3 times because the last time you return `r1` unconditionally, which happens outside of the loop.

``` This Question was asked in  StackOverflow by  4daJKong and Answered by Jasmijn It is licensed under the terms of
CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.```