Forelesning 1: Programmering i kjemi#
Periodesystemet og periodiske egenskaper#
# Installere biblioteker i Jupyter Notebook
!pip install mendeleev chemlib pandas seaborn
# Klasser og objekter
liste1 = [] # listeobjekt basert på klassen "list"
liste2 = [] # annet listeobjekt
liste1.append(2)
liste2.append("sjokoladestrø")
print(type(liste))
<class 'list'>
from mendeleev import element
Z = 10 # Atomnummer
grunnstoff = element(Z)
print(grunnstoff.symbol, grunnstoff.name, grunnstoff.group_id)
Ne Neon 18
Oppgave: Modifiser programmet slik at det skriver ut informasjonen (navn, symbol og elektronegativitet) om de 18 letteste grunnstoffene.
for Z in range(1, 19):
grunnstoff = element(Z)
sym = grunnstoff.symbol
navn = grunnstoff.name
elneg = grunnstoff.electronegativity()
print(sym, navn, elneg)
H Hydrogen 2.2
He Helium None
Li Lithium 0.98
Be Beryllium 1.57
B Boron 2.04
C Carbon 2.55
N Nitrogen 3.04
O Oxygen 3.44
F Fluorine 3.98
Ne Neon None
Na Sodium 0.93
Mg Magnesium 1.31
Al Aluminum 1.61
Si Silicon 1.9
P Phosphorus 2.19
S Sulfur 2.58
Cl Chlorine 3.16
Ar Argon None
import matplotlib.pyplot as plt
atomnummer = []
elektroneg = []
for Z in range(1,119):
grunnstoff = element(Z)
atomnummer.append(grunnstoff.atomic_number)
elektroneg.append(grunnstoff.electronegativity())
plt.plot(atomnummer, elektroneg, color = "hotpink", marker = "o", linestyle = "--")
plt.xlabel("Atomnummer")
plt.ylabel("Elektronegativitet")
#plt.grid()
plt.savefig("plott1.tiff")
Oppgave: Plott listene mot hverandre. Modifiser programmet slik at det kun plotter grunnstoffene i andre periode. Forklar trenden du ser.
Elektronegativitet i gruppe 1#
Oppgave: Plott elektronegativitet som funksjon av atomnummer for grunnstoffene i gruppe 1.
Støkiometriske beregninger#
Stoffmengdeberegninger#
from chemlib import Compound, Reaction
butan1ol = Compound("C4H9OH")
print(butan1ol.get_amounts(moles=1))
{'moles': 1, 'grams': 74.12300000000002, 'molecules': 6.02e+23}
H2 = Compound("H2")
I2 = Compound("I2")
HI = Compound("HI")
reaksjon = Reaction([H2, I2], [HI])
reaksjon.is_balanced
False
reaksjon.balance() # balanserer reaksjonslikninga
reaksjon.is_balanced
True
reaksjon.formula
'1H₂ + 1I₂ --> 2H₁I₁'
Oppgave: Bruk chemlib til å balansere ufullstendig forbrenning av benzen (vi får vann og CO)