Dick Moores wrote: > Yes, Danny, I've taken yours and Andrei's comment about again() to > heart; I see my confusion. I've revised again() and main(). See my > version 2: http://www.rcblue.com/Python/yen-USD-v2.txt Is this better?
Have you noticed the similarity between getRate() and getAmount()? Maybe you could make a single getPositiveNumber() function that replaces both? A better name for comma() might be commify() ? confirmCurrency() doesn't just confirm, it also puts the currency into a standard form. I would make that a responsibility of getYenOrUSD(). Others have commented on potential problems with 'if currency not in "YENUSD":'. I would combine the test with the normalization. Here are two ways to do it: by testing each one: currency = currency.upper() # string.upper() is deprecated if currency in ['Y', 'YEN']: return 'Yen' if currency in ['U', 'USD']: return 'USD' with a dictionary: currencies = { 'U' : 'USD', 'USD' : 'USD', 'Y' : 'Yen', 'YEN' : 'Yen' } try: return currencies[currency] except KeyError: continue The dict method is more extensible, you could even create the dict automatically from a list of the return codes you want. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor