").match
DATA = cgi.FieldStorage()
answers = ""
if not DATA.has_key('formula') and not DATA.has_key('todo') and not DATA.has_key('with'):
print_it()
elif DATA.has_key('formula') and DATA.has_key('todo') and DATA.has_key('with'):
pass
else:
print_it("Fill in all fields.")
formula = DATA['formula'].value
todo = DATA['todo'].value
with = DATA['with'].value
seq = parse(formula)
if seq and todo == 'mass':
moles = float(eval(with))
mass = seq.get_mass() * moles
answers += "Molar mass: %s %s" % (signif(mass), add_s('gram', mass) )
answers += ""
answers += seq.show_amounts(moles)
answers += seq.show_atoms(moles)
answers += "
"
answers += "%s molecules" % (signif(moles * NA))
elif seq and todo == 'moles':
mass = float(eval(with))
moles = mass/seq.get_mass()
answers += "There are %s %s of %s in %dg" % (signif(moles), add_s('mole', moles), formula, mass)
answers += ""
answers += seq.show_amounts(moles)
answers += seq.show_atoms(moles)
answers += "
"
answers += "%s molecules" % (signif(moles * NA))
print_it()