On Nov 4, 2:19 am, braden faulkner <brf...@gmail.com> wrote: > I'm using a menu for my command line app using this method. > > choice = "foobar" > while choice != "q": > if choice == "c": > temp = input("Celsius temperature:") > print "Fahrenheit:",celsius_to_fahrenheit(temp) > elif choice == "f": > temp = input("Fahrenheit temperature:") > print "Celsius:",fahrenheit_to_celsius(temp) > elif choice != "q": > print_options() > choice = raw_input("option:") > > Just wondering if there is another or more efficient way I should be doing it? > > Thanks > -- Braden Faulkner
Here is a solution using plac (http://pypi.python.org/pypi/plac): $ echo c2f.py import plac class Converter(object): commands = ['celsius_to_fahrenheit', 'fahrenheit_to_celsius'] @plac.annotations(t='convert Celsius to Fahrenheit') def celsius_to_fahrenheit(self, t): return round(32 + float(t) * 9/5) @plac.annotations(t='convert Fahrenheit to Celsius') def fahrenheit_to_celsius(self, t): return round((float(t) - 32) * 5 / 9.0) if __name__ == '__main__': import plac; plac.Interpreter.call(Converter) Here is an example of non-interactive usage: $ python c2f.py fahrenheit_to_celsius 212 100.0 $ python c2f.py celsius_to_fahrenheit 100 212.0 Here is an example of interactive usage:$ python c2f.py -i i> celsius_to_fahrenheit 100 212.0 i> celsius_to_fahrenheit 0 32.0 i> fahrenheit_to_celsius 32 0.0 i> fahrenheit_to_celsius 212 100.0 -- http://mail.python.org/mailman/listinfo/python-list