# Molecular Mass Calculator #### Learning Objectives

In this challenge you will improve your string manipulation techniques as well as use Python to perform some basic mathematical calculations.

#### Did you know?

The molecular weight (mass) may be calculated from the molecular formula of the substance; it is the sum of the atomic weights of the atoms making up the molecule. The molecular mass is expressed in atomic mass unit (amu).

For example, water has the molecular formula H2O, indicating that there are two atoms of hydrogen and one atom of oxygen in a molecule of water.

 Atom Atomic Mass Quantity Total Mass H 1.008 2 2.016 O 15.999 1 15.999 H20 18.015

In the following script we use a Python dictionary called atomicMass to store the atomic mass of some of the main atoms (C, H, O…)

We then work out the molecular mass of water: H20.

Adapt this script to get the program ask the end-user to enter a molecular formula of their choice.
Using string manipulation techniques your Python script will break down the formula entered by the end-user and calculate the total mass of the molecule.

Test your script with the following molecules:

 Molecule Formula Water H2O Carbon Dioxide CO2 Methane CH4 Butane C4H10 Carbonic Acid H2CO3 Acetone CH3COCH3 Lactose C12H22O11

#### Challenge #2

Add more atoms to the atomMass dictionary as follows:

 Atom Atomic Mass Fe 53.939 Ag 106.905 Cu 62.929 Na 22.989 Cl 34.968

Adapt your script so that it recognises when these atoms are used by the end-user when entering their molecular formula. This will be based on the use of uppercase & lowercase letters.

Test your script with the following molecules:

 Molecule Formula Sodium Chloride NaCl Iron Oxide Fe2O3 Copper Chloride Hydroxide HOCuCl #### Solution...

The solution for this challenge is available to full members!
Find out how to become a member:

Did you like this challenge?

Click on a star to rate it!

Average rating 4.3 / 5. Vote count: 3

No votes so far! Be the first to rate this post.

As you found this challenge interesting...