Re: create global variables?



Alistair King wrote:
Steve Holden wrote:

aking@xxxxxxxxxxxxxxxxx wrote:


J. Clifford Dyer wrote:



Alistair King wrote:

[... advice and help ...]



this worked a treat:

def monoVarcalc(atom):

a = atom + 'aa'
Xaa = a.strip('\'')
m = atom + 'ma'
Xma = m.strip('\'')
Xaa = DS1v.get(atom)
Xma = pt.get(atom)
return Xaa, Xma


Caa, Cma = monoVarcalc('C')


In which case I suspect you will find that this works just as well:

def monoVarcalc(atom):

Xaa = DS1v.get(atom)
Xma = pt.get(atom)
return Xaa, Xma


Unless there is something decidedly odd about the side-effects of the statements I've removed, since you never appear to use the values of a, m, Xaa and Xma there seems little point in calculation them.

regards
Steve

Yup...it works..but now i have to create a dictionary of 'a' and 'm',
ie... "Xaa" and "Xma" string, key:value pairs so i can use other
functions on the Xaa, Xma variables by iterating over them and
retrieving the values from the variables. I think if i just input Xaa
and Xma, only the values associated with those variables will go into
the dictionary and ill just be iterating over nonsence.....

atomsmasses = {}

def monoVarcalc(atom):
a = atom + 'aa'
m = atom + 'ma'
atomsmasses[a]=m
Xaa = a.strip('\'')
Xma = m.strip('\'')
Xma = pt.get(atom)
if DS1v.get(atom) != None:
Xaa = DS1v.get(atom)
else:
Xaa = 0
return Xaa, Xma

Caa, Cma = monoVarcalc('C')
Oaa, Oma = monoVarcalc('O')
Haa, Hma = monoVarcalc('H')
Naa, Nma = monoVarcalc('N')
Saa, Sma = monoVarcalc('S')
Claa, Clma = monoVarcalc('Cl')
Braa, Brma = monoVarcalc('Br')
Znaa, Znma = monoVarcalc('Zn')



i think? :)
thanks

a

No fair: you only just added atomsmasses! ;-)

However, it seems to me that your atomsmasses dictionary is going to be entirely predictable, and you are still focusing on storing the *names* of things rather than building up a usable data structure. Indeed I suspect that your problem can be solved using only the names of the elements, and not the names of the variables that hold various attributes of the elements.

Perhaps if you explain in plain English what you *really* want to do we can help you find a more Pythonic solution. It'll probably end up something like this:

mass = {}
for element in ['C', 'O', ..., 'Zn']
mass[element] = monoVarcalc(element)

But I could, of course, be completely wrong ... it wouldn't be the first time. Do you understand what I'm saying?

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

.



Relevant Pages