# -*- coding: utf-8 -*-
elements = {
"H": 1,
"He": 2,
"Li": 3,
"Be": 4,
"B": 5,
"C": 6,
"N": 7,
"O": 8,
"F": 9,
"Ne": 10,
"Na": 11,
"Mg": 12,
"Al": 13,
"Si": 14,
"P": 15,
"S": 16,
"Cl": 17,
"Ar": 18,
"K": 19,
"Ca": 20,
"Sc": 21,
"Ti": 22,
"V": 23,
"Cr": 24,
"Mn": 25,
"Fe": 26,
"Co": 27,
"Ni": 28,
"Cu": 29,
"Zn": 30,
"Ga": 31,
"Ge": 32,
"As": 33,
"Se": 34,
"Br": 35,
"Kr": 36,
"Rb": 37,
"Sr": 38,
"Y": 39,
"Zr": 40,
"Nb": 41,
"Mo": 42,
"Tc": 43,
"Ru": 44,
"Rh": 45,
"Pd": 46,
"Ag": 47,
"Cd": 48,
"In": 49,
"Sn": 50,
"Sb": 51,
"Te": 52,
"I": 53,
"Xe": 54,
"Cs": 55,
"Ba": 56,
"La": 57,
"Ce": 58,
"Pr": 59,
"Nd": 60,
"Pm": 61,
"Sm": 62,
"Eu": 63,
"Gd": 64,
"Tb": 65,
"Dy": 66,
"Ho": 67,
"Er": 68,
"Tm": 69,
"Yb": 70,
"Lu": 71,
"Hf": 72,
"Ta": 73,
"W": 74,
"Re": 75,
"Os": 76,
"Ir": 77,
"Pt": 78,
"Au": 79,
"Hg": 80,
"Tl": 81,
"Pb": 82,
"Bi": 83,
"Po": 84,
"At": 85,
"Rn": 86,
"Fr": 87,
"Ra": 88,
"Ac": 89,
"Th": 90,
"Pa": 91,
"U": 92,
"Np": 93,
"Pu": 94,
"Am": 95,
"Cm": 96,
"Bk": 97,
"Cf": 98,
"Es": 99,
"Fm": 100,
"Md": 101,
"No": 102,
"Lr": 103,
"Rf": 104,
"Db": 105,
"Sg": 106,
"Bh": 107,
"Hs": 108,
"Mt": 109,
}
elements_reversed = {value: key for (key, value) in elements.items()}
atomic_masses = {
"H": 1.0079,
"He": 4.0026,
"Li": 6.941,
"Be": 9.0122,
"B": 10.811,
"C": 12.0107,
"N": 14.0067,
"O": 15.9994,
"F": 18.9984,
"Ne": 20.1797,
"Na": 22.9897,
"Mg": 24.305,
"Al": 26.9815,
"Si": 28.0855,
"P": 30.9738,
"S": 32.065,
"Cl": 35.453,
"K": 39.0983,
"Ar": 39.948,
"Ca": 40.078,
"Sc": 44.9559,
"Ti": 47.867,
"V": 50.9415,
"Cr": 51.9961,
"Mn": 54.938,
"Fe": 55.845,
"Ni": 58.6934,
"Co": 58.9332,
"Cu": 63.546,
"Zn": 65.39,
"Ga": 69.723,
"Ge": 72.64,
"As": 74.9216,
"Se": 78.96,
"Br": 79.904,
"Kr": 83.8,
"Rb": 85.4678,
"Sr": 87.62,
"Y": 88.9059,
"Zr": 91.224,
"Nb": 92.9064,
"Mo": 95.94,
"Tc": 98.0,
"Ru": 101.07,
"Rh": 102.9055,
"Pd": 106.42,
"Ag": 107.8682,
"Cd": 112.411,
"In": 114.818,
"Sn": 118.71,
"Sb": 121.76,
"I": 126.9045,
"Te": 127.6,
"Xe": 131.293,
"Cs": 132.9055,
"Ba": 137.327,
"La": 138.9055,
"Ce": 140.116,
"Pr": 140.9077,
"Nd": 144.24,
"Pm": 145.0,
"Sm": 150.36,
"Eu": 151.964,
"Gd": 157.25,
"Tb": 158.9253,
"Dy": 162.5,
"Ho": 164.9303,
"Er": 167.259,
"Tm": 168.9342,
"Yb": 173.04,
"Lu": 174.967,
"Hf": 178.49,
"Ta": 180.9479,
"W": 183.84,
"Re": 186.207,
"Os": 190.23,
"Ir": 192.217,
"Pt": 195.078,
"Au": 196.9665,
"Hg": 200.59,
"Tl": 204.3833,
"Pb": 207.2,
"Bi": 208.9804,
"Po": 209.0,
"At": 210.0,
"Rn": 222.0,
"Fr": 223.0,
"Ra": 226.0,
"Ac": 227.0,
"Pa": 231.0359,
"Th": 232.0381,
"Np": 237.0,
"U": 238.0289,
"Am": 243.0,
"Pu": 244.0,
"Cm": 247.0,
"Bk": 247.0,
"Cf": 251.0,
"Es": 252.0,
"Fm": 257.0,
"Md": 258.0,
"No": 259.0,
"Rf": 261.0,
"Lr": 262.0,
"Db": 262.0,
"Bh": 264.0,
"Sg": 266.0,
"Mt": 268.0,
"Rg": 272.0,
"Hs": 277.0,
}
[docs]def atomic_mass(element):
"""
Given a element symbol or element atomic number returns atomic mass.
Parameters
----------
element : int,str
atomic symbol or atomic number.
Returns
-------
float
atomic mass.
"""
if type(element) is str:
return atomic_masses[element]
elif type(element) is int:
return atomic_masses[elements_reversed[element]]
[docs]def atomic_number(element):
"""
Given element symbol returns atomic number.
Parameters
----------
element : str
Atomic symbol.
Returns
-------
int
Atomic number.
"""
return elements[element]
[docs]def atomic_symbol(atomic_number):
"""
Given atomic number returns atomic symbol.
Parameters
----------
atomic_number : int
Atomic number.
Returns
-------
str
Atomic symbol.
"""
return elements_reversed[atomic_number]