Python Forum
3 conditions to check and return - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: 3 conditions to check and return (/thread-10526.html)



3 conditions to check and return - ilcaa72 - May-24-2018

i want to check/return for 3 conditions, it loops shortest str and finds diff in other
1. if difference is immediate before end of range, return index, exit
2. if string length is same and index loop is done and matches str2, return 'identical', exit
3. Else just return idex+1 which means the short loop ended and every letter was same so next letter of longer str is the diff, just return idex + 1

but my last print statement always print. not sure how to end this "just return this if other 2 cond. aren't met". hope i am making sense

str1= "kitti cat"
str2= 'kitti catt'
lenStr1= len(str1)
lenStr2= len(str2)

#find shortest str and use it as loop range
if lenStr1 >= lenStr2:
    str= str2
else:
    str= str1
        
# loop each character of shortest string, compare to same index of longer string
# if any difference, exit and return index of difference
for idx in range(len(str)):
    a= str1[idx]
    b= str2[idx]
    if a != b:      #immeditely exit, since non-match found
        print(idx)
        break
    else:
       if len(str1) == len(str2) and idx == len(str1)-1: #if no difference print 'identical'
            print("identical")
            break

print(idx+1) #if other 2 conditions are not met, just return idx+1 which is the last possibility



RE: 3 conditions to check and return - micseydel - May-24-2018

If you wrap the code in a function, you can use return instead of break; if I understand you correctly, I think that should satisfy your requirement.


RE: 3 conditions to check and return - ilcaa72 - May-24-2018

are you saying if i make it a func and place return it wont include the last line if a condition is met before?

its the last statement or condition it keep printing even if i include the 'break' statement in other condition


RE: 3 conditions to check and return - ilcaa72 - May-24-2018

i added an extra else: after the last condition or matching the original For loop. so if the first 2 dont break the loop this last one will... thanks for the reply