Python if statement efficiency

Posted by Dennis on Stack Overflow See other posts from Stack Overflow or by Dennis
Published on 2010-03-29T15:25:38Z Indexed on 2010/03/29 15:33 UTC
Read the original article Hit count: 470

Filed under:
|
|

A friend (fellow low skill level recreational python scripter) asked me to look over some code. I noticed that he had 7 separate statements that basically said.

if ( a and b and c):
    do something

the statements a,b,c all tested their equality or lack of to set values. As I looked at it I found that because of the nature of the tests, I could re-write the whole logic block into 2 branches that never went more than 3 deep and rarely got past the first level (making the most rare occurrence test out first).

if a:
    if b:
        if c:
    else:
        if c:
else:
    if b:
        if c:
    else:
        if c:

To me, logically it seems like it should be faster if you are making less, simpler tests that fail faster and move on. My real questions are

1) When I say if and else, should the if be true, does the else get completely ignored?

2) In theory would

if (a and b and c)

take as much time as the three separate if statements would?

© Stack Overflow or respective owner

Related posts about python

Related posts about efficiency