dict problem

Jon Clements joncle at googlemail.com
Wed Oct 25 11:17:48 CEST 2006

Alistair King wrote:

> Hi,
> ive been trying to update a dictionary containing a molecular formula, but seem to be getting this error:
> Traceback (most recent call last):
>   File "DS1excessH2O.py", line 242, in ?
>     updateDS1v(FCas, C, XDS)
> NameError: name 'C' is not defined
> dictionary is:
> DS1v = {'C': 6, 'H': 10, 'O': 5}
> #'Fxas' in each case will be integers but 'atoms' should be a float
> def updateDS1v(Fxas, x, XDS):
>     while Fxas != 0:
>         atoms = DS1v.get('x') + Fxas*XDS
>         DS1v[x] = atoms
> updateDS1v(FCas, C, XDS)
> updateDS1v(FHas, H, XDS)
> updateDS1v(FOas, O, XDS)
> updateDS1v(FNas, N, XDS)
> updateDS1v(FSas, S, XDS)
> updateDS1v(FClas, Cl, XDS)
> updateDS1v(FBras, Br, XDS)
> updateDS1v(FZnas, Zn, XDS)
> print DS1v
> I know there is probably a simple solution but im quite new to python and am lost?

I strongly suggest reading through the tutorial.

I don't think there's enough code here for anyone to check it properly.
For instance, it looks like FCas exists somewhere as it's barfing on
trying to find C. Where is XDS defined etc...?

I can't see updateDS1v() ever completing: any Fxas passed in not equal
to 0 will repeat indefinately.

I'm guessing unless C is meant to be a variable, you mean to pass in
the string 'C'.

A dictionary already has it's own update method....

Perhaps if you explain what you're trying to do in plain English, we
could give you some pointers.


More information about the Python-list mailing list