"David" <da...@abbottdavid.com> wrote
OK, this is what I came up with, how else could I do it so as not to use
sys.exit() ?
You don;t need the exit(), The program will just drop off the end
silently without it. Thre are several other redundant bits you could
just miss out:
class FertRate:
def __init__(self, rate, nitrogen, acre, bag):
self.area = 43.560
self.app = rate / (nitrogen / 100.00)
self.acre = acre
self.bag = bag
def result(self):
result = self.app * self.area * self.acre / self.bag
return result
leave out the variable and just return the calculated value:
return self.app * self.area * self.acre / self.bag
def main():
while True:
try:
frate = FertRate( *get_inputs() )
result = frate.result()
print 'You should apply %0.2f bags.' % result
And here miss the variable and use the functin in the format string:
print 'You should apply %0.2f bags.' % frate.result()
exit()
And just delete this.
except TypeError, UnboundLocalError:
pass
def get_inputs():
try:
print 'Rate: Pounds nitrogen per 1000 (square feet)'
rate = float(raw_input('Enter Rate i.e., (0.5): '))
print "Nitrogen: The first number of the fertilizer's analysis"
nitrogen = float(raw_input('Enter Nitrogen From Bag i.e., (14):
'))
acre = int(raw_input("Enter Total Acre's To Be Treated i.e, (3):
"))
bag = int(raw_input('Enter Bag Weight (lb): i.e., (50) '))
return rate, nitrogen, acre, bag
except ValueError:
print 'Invalid input!'
print 'You must enter a number!'
You could put the whole thing in a while loop so the error gets
printed but the user has a chance to corect it.
def get_inputs():
while True:
try:
# blah blah
return ..... # breaks from the while loop
except ValueError, TypeError:
print blah
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor