[Tutor] creating a range above & below a given number
Emile van Sebille
emile at fenx.com
Sun Jun 7 17:44:41 CEST 2009
On 6/7/2009 7:08 AM Gonzalo Garcia-Perate said...
> the solution laid somewhere in between:
>
> def within_range(self, n, n2, threshold=5):
> if n in range(n2-threshold, n2+threshold+1) and n <
> n2+threshold or n > n2 + threshold : return True
> return False
>
Be careful here -- you probably will get stung mixing ands and ors
without parens.
>>> print False and False or True
True
>>> print False and (False or True)
False
The range test here can only serve to verify n as an integer, so you can
simplify to:
def within_range(self, n, n2, threshold=5):
if n == int(n) and (
n < n2+threshold or n > n2 + threshold) :
return True
return False
Of course, the test in the function is a boolean, so you can return the
result of the boolean directly and eliminate the return True and False
statements:
def within_range(self, n, n2, threshold=5):
return n == int(n) and (
n < n2+threshold or n > n2 + threshold)
Emile
More information about the Tutor
mailing list