Химия в Python: часть 3

Содержание

  1. Первая часть

  2. Вторая часть

  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)

А после исправляем главный файл и добавляем в него ввод

Домашнее задание

Домашнее задание — сделать функции с теми формулами, которые мы не сделали.

Заключение

Если вы не поняли некоторые функции — пишите в комментарии, я объясню

© Habrahabr.ru