Hi all, I am trying to get a value dependant on initial vlaue inputed Depending on the value, I want the functiont to return a percentage For some reason, It seems to skip the first if state and just print out the 1st elif not sure what is going.
Are you sure you are passing a number to the function? If you are passing a value you received from raw_input it is a string.
also, is there a cleaner way to write this?
I would use a list of value pairs. It separates the data from the code so it is easier to see what is going on. Here is a version that does this. It also ensures that the input value is a float:
def INRadjust(x):
cutoffs = [
(1, .15),
(1.5, .12),
(1.75, .1),
(1.9, .05),
(3.1, 0),
(4.1, -.1),
(5.1, -.2),
(6.1, -.25),
(7.1, -.3),
] x = float(x) # make sure x is a number
for cutoff, value in cutoffs:
if x < cutoff:
return valueprint "Notify doctor"
Kent
-=-------------------------
#! /usr/bin/env python ''' Calulate the percent increase in dose given an INR value. '''
def INRadjust(x): if x < 1: return .15 elif x < 1.5: return .12 elif x < 1.75: return .1 elif x < 1.9: return .05 elif x < 3.1: return 0 elif x < 4.1: return -.1 elif x < 5.1: return -.2 elif x < 6.1: return -.25 elif x < 7.1: return -.3 else: print "Notify Doctor" _______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
_______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
