Adam Gomaa wrote: > Thanks for your help! I've rewritten it with many of your suggestions > and will definitely use this as a reference for future scripts. > > Here's the updated one.
> userInputString=userInput.strip(string.digits) > userInputString=userInputString.strip(string.punctuation)# this one > userInputString=userInputString.strip(string.digits) > userInputString=userInputString.strip(string.whitespace) > userInputString=userInputString.strip(string.digits)# and this one. > > > userInputValue=userInput.strip(string.letters) > userInputValue=userInputValue.strip(string.whitespace) I'm not entirely sure I follow this but I think you could use userInputString=userInput.strip(string.digits+string.punctuation+string.digits+string.whitespace) userInputValue=userInput.strip(string.letters+string.whitespace) > def convertUnits(startingUnit,value): > """Convert the passed value, with startingUnit, into appropriate units > for the rest of the module.""" > > #For next if block, each of these should pass value into a lambda > # function from the dictionaries above. In theory, then, it should > # always convert into kPa, l, or k. > if startingUnit in pressureUnitDict.keys(): #WHY the error? > return pressureUnitDict[startingUnit](value) > > elif startingUnit in volumeUnitDict.keys(): > return volumeUnitDict[startingUnit](value) > > elif startingUnit in temperatureUnitDict.keys(): > return temperatureUnitDict[startingUnit](value) > > elif startingUnit=='x': > return value > else: > print '### Unknown unit "%s" -- Using default. ###' % > startingUnit > return value This is ugly. I would either - pass the correct dict as an argument - make separate convertPressure(), convertVolume(), convertTemperature() functions, which probably will pass the correct dict to a helper function. - Just put all the conversions in one dict, which will give the same functionality you have now. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor