[Tutor] equality check difference

Dave Angel davea at davea.name
Sun Apr 20 03:43:32 CEST 2014


Alan Gauld <alan.gauld at btinternet.com> Wrote in message:
> On 19/04/14 21:48, Vipul Sharma wrote:
> 
>> *if a == 5 and b == 5:*
>> *    # do something*
>>
>> *if a == b and b == 5:*
>> *    # do something *
>>
>> which made me think, is there any difference between the two ?
> 
> Yes.
> I don't know how python actually does it but in a general
> sense there is not much if any difference when the conditions
> are true but if, for example, a is 5 and b is 4 then consider
> what happens:
> 
> a==5 and b==5
> 1) check if a==5 -> True
> 2) check if b==5 -> False
> 3) skip if block
> 
> a==b and b==5
> 1) check if a == b -> False
> 2) skip if block
> 
> So the second version notionally does one less test for a
> false condition. But its arguable less readable so do you
> trade readability for a (marginal) speed improvement?
> 

You're right, the second expression is faster for 5,4.  But the
 first is faster for 4,4. So choosing for speed depends on what
 you know about probable values. 


-- 
DaveA



More information about the Tutor mailing list