#!/usr/bin/python import sys, getopt def fahr2cel(t): return ( ( 5.0 / 9.0 ) * ( t - 32.0 ) ) def cel2fahr(t): return ( ( 9.0 / 5.0 ) * t + 32.0 ) def cel2kel(t): return ( t + 273.15 ) def kel2cel(t): return ( t - 273.15 ) def fahr2kel(t): return ( cel2kel( fahr2cel(t) ) ) def kel2fahr(t): return ( cel2fahr( kel2cel(t) ) ) def cf(t): return fahr2cel(t), t, fahr2kel(t) def ck(t): return kel2cel(t), kel2fahr(t), t def cc(t): return t, cel2fahr(t), cel2kel(t) def usage(txt = None): print 'Usage: %s <-c|-f|-k> [--] ' % sys.argv[0] if txt is not None: print txt sys.exit(1) try: opts, other = getopt.getopt(sys.argv[1:], "kcfh", ["kelvin", "celsius", "fahrengeit"]) except getopt.GetoptError, exc: usage(str(exc)) if len(other) != 1: usage() val = float(other[0]) for o, v in opts: if o == '-f': orig = cf elif o == '-k': orig = ck elif o == '-c': orig = cc else: usage() print "Celsius: %2.2f Fahrengeit: %2.2f Kelvin: %2.2f" % orig(val)