gerardo arnaez wrote:
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 value

    print "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

Reply via email to