Aqueous Solutions¶
Acidity Calculation (pH, pOH)¶
- chemlib.chemistry.pH(**kwargs)¶
For any inputted pH, pOH, [H+], or [OH-], finds the corresponding values.
- Parameters
kwargs – The value of the chosen input (pH=, pOH=, H=, or OH=)
- Return type
dict
What is the pH, pOH and [OH-] given a [H+] of 1.07x10^-6 M?
>>> import chemlib
>>> chemlib.pH(H=1.07e-6)
{'H': 1.07e-06, 'pOH': 8.029, 'pH': 5.971, 'OH': 9.354e-09, 'acidity': 'acidic'}
What is the pH, pOH, and [H+] given a [OH-] of 2.06x10^-3 M?
>>> chemlib.pH(OH=2.06e-3)
{'OH': 0.002, 'H': 5e-12, 'pOH': 2.699, 'pH': 11.301, 'acidity': 'basic'}
What is the pOH, [H+], and [OH-] given a pH of 5.2?
>>> chemlib.pH(pH = 5.2)
{'pH': 5.2, 'OH': 1.585e-09, 'H': 6.309e-06, 'pOH': 8.8, 'acidity': 'acidic'}
Making a Solution¶
- class chemlib.chemistry.Solution(self, solute, molarity)¶
Instantiate a chemlib.Solution
object with the formula of the solute, and the molarity in mol/L.
- param solute (str)
The formula of the solute without using subscripts OR a
chemlib.chemistry.Compound
object.- param molarity (float)
How many moles of solute per liter of solution
>>> from chemlib import Solution
>>> Solution('AgCl', 2)
<chemlib.chemistry.Solution object at 0x03F46370>
>>> s = Solution('AgCl', 2)
>>> s.molarity
2
- classmethod chemlib.chemistry.Solution.by_grams_per_liters(cls, solute, grams, liters)¶
OR you can make a Solution with the solute, and grams per liter.
- param str solute
The formula of the solute without using subscripts OR a
chemlib.chemistry.Compound
object.- param float grams
How many grams of solute
- param float liters
How many liters of solution
>>> from chemlib import Solution
>>> s = Solution.by_grams_per_liters("NaCl", 10, 1)
>>> s.molarity
0.1711
Dilutions¶
- chemlib.chemistry.Solution.dilute(self, V1=None, M2=None, V2=None, inplace=False) dict ¶
Using formula M1*V1 = M2*V2
- param float V1
The starting volume of the solution. [Must be specified]
- param float M2
The ending molarity after dilution.
- param float V2
The ending volume after dilution
- param bool inplace
You can set to true if the old molarity is to be replaced by the new molarity
- return
The new volume and the new molarity.
- rtype
dict
- raises TypeError
if a starting volume is not specified
- raises TypeError
if both M2 and V2 are specified
To find the dilution of 2.5 L of 0.25M NaCl to a 0.125M NaCl solution:
>>> from chemlib import Solution
>>> s = Solution("NaCl", 0.25)
>>> s.dilute(V1 = 2.5, M2 = 0.125)
{'Solute': 'Na₁Cl₁', 'Molarity': 0.125, 'Volume': 5.0}