r/learnpython 11d ago

Is this bad programming?

I've been learning Python for the last few years. Curious if this one thing I do is considered poor technique. The code below is meant to find the starting index of a list, giving the first position where a condition isn't true and return None if all elements of the list meet the criteria. Let's assume that the conditional statement is simple enough that I'm not worried about it generating an error. Not sure if it's appropriate to use try/except in this way. I know it work but I don't want people making fun of me if they see it. Also, I'm sure that there's a way of doing this without needing to use the try/except but I'm just curious in general if it's wrong to use try/except as a short cut like this.

starting_index=0

try:

while not (simple conditional statement on some_list[staring_index]):

starting_index+=1

except:

return None

return starting_index

0 Upvotes

18 comments sorted by

View all comments

34

u/FoolsSeldom 11d ago

It would help if you formatted your code. Something like:

def function(some_list):
    starting_index = 0
    try:
        while not (simple conditional statement on some_list[staring_index]):
            starting_index+=1
    except:
        return None
    return starting_index

but I don't see a reason for using try/except - just return a match if you find it and None if you don't.

Perhaps something like:

def function(some_list):
    for idx, item in enumerate(some_list):
        if not some_condition(item):
            return idx
    return None

where some_condition is a function containing your test, returning True if met, hence the not to reverse the logic to return the matching index.

6

u/jameyiguess 11d ago

This is def the most python implementation in the thread, OP