Химия в Python: часть 3
Содержание
Первая часть
Вторая часть
Третья часть (вы тут)
Привет, хабр! Вот и подошла третья часть статей по теме вычислительной химии на Python.
Напоминаю, что весь исходный код здесь.
Мы уже с вами реализовали:
Чтение химических элементов периодической таблицы Менделеева через CSV файл
Калькулятор массовой доли элемента в формуле
Калькулятор относительной молекулярной массы формулы
Обычный, тривиальный редактор, не так ли? Но пора начинать делать другой, более продвинутый функционал. Прочитав комментарии за последние статьи, я понял что люди жаждут нового и необычного.
Итак, сегодня мы создадим функции по вычислению количества вещества.
В следующей части я затрону изотопы!
Количество вещества
Основные формулы
Итак, вводим новые переменные:
AVOGADRO_NUMBER = 6.022
Для веществ характерно взаимодействие друг с другом. Перед химиками стоит задача вычислить какое количество вещества необходимо для реакции с другим веществом.В химической промышленности, на производстве важно знать, какая масса или объём реагентов необходим, и сколько возможно получить в итоге реакции продукта. Вещества реагируют между собой в определённых количествах, точнее эквивалентах.
Количество вещества (моль) — важная расчетная величина в химии. Это именно тот золотой ключик, которым открывают любую, даже самую потайную дверь химической задачи. Термины «моль» и «молекула» — однокоренные, они произошли от латинского слова «moles». В XVII в. появился термин «молекула» («маленькая масса»). Понятие «моль» («большая масса», «порция») появилось в начале XX века. Автор термина «моль» — немецкий химик и физик Вильгельм Оствальд.
Количество вещества определяется числом частиц, из которых состоит данное вещество (атомов, молекул, ионов), и обозначается греческой буквой «ню». Для характеристики количества вещества в химии используют особую единицу измерения — моль.
Моль — это количество вещества, которое содержит столько структурных единиц (атомов, молекул, ионов), сколько атомов углерода содержится в 12 г изотопа углерода 12С. Экспериментально установлено, что один моль любого вещества содержит число Авогадро структурных единиц. В настоящее время известно более 60 независимых экспериментальных методов определения значения числа Авогадро.
Молярная масса — это масса 1 моля вещества, то есть отношение массы вещества к его количеству, выраженное в г/моль.
Абсолютная масса одной молекулы (атома) определяется делением молярной массы на число Авогадро
Исходный код
Мы добавляем к нашему прошлому коду еще 3 функции:
# не забываем про импорт AVOGADRO_NUMBER (как Na)
# и про импорт calculate_relative_molecular_mass
def count_molecules_from_moles(n: int):
return f"{float(n) * Na} * 10^23"
def count_moles_from_molecules(N: float):
return float(N) / Na
def calculate_mass_from_moles(formula: str, n: int):
M = calculate_relative_molecular_mass(formula, False)['mass']
return M * float(n)
А после исправляем главный файл и добавляем в него ввод
Домашнее задание
Домашнее задание — сделать функции с теми формулами, которые мы не сделали.
Заключение
Если вы не поняли некоторые функции — пишите в комментарии, я объясню