Добавил:
свои люди в ТПУ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛБ5

.docx
Скачиваний:
0
Добавлен:
14.01.2026
Размер:
163.81 Кб
Скачать

Инженерная школа природных ресурсов

Направление подготовки Химическая технология

Отделение химической инженерии

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА PYTHON

Отчет по лабораторной работе № 5

Словари и множества

Выполнил студент гр. ХИМ54 А.В. Чижова

(Подпись)

26.11.2025 г.

Отчет принят:

Преподаватель

доцент ОХИ ИШПР, к.т.н. В.А. Чузлов

(Подпись)

_____ _____________ 2025 г.

Томск 2025 г.

Задание 1

  1. Необходимо создать словарь, в котором ключами будут числа от 1 до 10, а значениями эти же числа, возведенные в квадрат, если число чётное, и в степень 1/2, если число нечётное. Выведите элементы (пары ключ: значение) для данного словаря на экран.

  2. Выведите элементы (пары ключ: значение) для данного словаря в порядке уменьшения величины значений.

Программная реализация:

a = {i: i**2 if i % 2 == 0 else i**(1/2) for i in range(1, 11)}

print("Словарь:")

for key, value in a.items():

print(f"{key}: {value:.2f}")

print("\n" + "="*40)

print("Сортировка по убыванию значений:")

for key, value in sorted(a.items(), key=lambda x: x[1], reverse=True):

print(f"{key}: {value:.2f}")

Ответ:

Словарь:

1: 1.00

2: 4.00

3: 1.73

4: 16.00

5: 2.24

6: 36.00

7: 2.65

8: 64.00

9: 3.00

10: 100.00

========================================

Сортировка по убыванию значений:

10: 100.00

8: 64.00

6: 36.00

4: 16.00

2: 4.00

9: 3.00

7: 2.65

5: 2.24

3: 1.73

1: 1.00

Задание 2

Пусть дан словарь со значениями молекулярных масс нормальных алканов C1-C2:

Используя эти данные, заполните словарь, в котором ключами будут брутто-формулы нормальных алканов C1-C5 (общая формула CnH2n+2), а значениями - соответствующие плотности (г / см3) для данных компонентов, вычисленные по формуле:

(1)

где – молекулярная масса i-го алкана.

Программная реализация:

import math

alkanes_molar_mass = {

'C1': 16,

'C2': 30,

'C3': 44,

'C4': 58,

'C5': 72,

}

density_dict = {}

for formula, molar_mass in alkanes_molar_mass.items():

density = 1.07 - math.exp(3.56073 - 2.93886 * molar_mass ** 0.1)

density_dict[formula] = density

print("Плотности алканов:")

for formula, density in density_dict.items():

print(f"{formula}H{2*int(formula[1:])+2}: {density:.4f}")

Ответ:

Плотности алканов:

C1H4: 0.3418

C2H6: 0.5037

C3H8: 0.5881

C4H10: 0.6426

C5H12: 0.6819

Задание 3

Даны следующие свойства углеводородов:

Углеводород

Молекулярная масса

SG*

i-Pentane

72.151001

0.623442

n-Pentane

72.151001

0.629729

n-Hexane

86.177902

0.662664

n-Heptane

100.205002

0.686815

n-Octane

114.232002

0.705377

n-Nonane

128.259003

0.720247

n-Decane

142.285004

0.732721

156.313004

0.742846

170.339005

0.751145

184.367004

0.758814

198.380005

0.762913

212.410004

0.770405

*SG (specific gravity) - относительная плотность, безразмерное число, отношение плотности вещества к плотности воды при 15° С.

Для легких углеводородов и нефтяных фракций с молекулярной массой в интервале 70-300 [г / моль] температуру кипения [K] можно определить по следующей формуле:

(2)

где – температура кипения углеводорода или нефтяной фракции, К; М – молярная масса углеводорода или средняя молярная масса фракции, г/моль; SG – относительная плотность по воде при 15° С.

  1. Создайте словарь для хранения свойств углеводородов, приведенных в исходных данных, в следующем виде:

  1. Используя формулу (2), рассчитайте температуру кипения (в °C) для каждого углеводорода и сохраните результаты в словарь, созданный в первом пункте. Выведите обновленный словарь на экран.

  2. Создайте новый словарь на основе исходного, в который войдут только углеводороды, выкипающие в пределах 45 – 180 °C и выведите элементы этого словаря на экран.

Программная реализация:

import math

data = {

'i-Pentane': {

'molar_mass': 72.151001,

'SG': 0.623442},

'n-Pentane': {

'molar_mass': 72.151001,

'SG': 0.629729},

'n-Hexane': {

'molar_mass': 86.177902,

'SG': 0.662664},

'n-Heptane': {

'molar_mass': 100.205002,

'SG': 0.686815},

'n-Octane': {

'molar_mass': 114.232002,

'SG': 0.705377},

'n-Nonane': {

'molar_mass': 128.259003,

'SG': 0.720247},

'n-Decane': {

'molar_mass': 142.285004,

'SG': 0.732721},

'n-C_11': {

'molar_mass': 156.313004,

'SG': 0.742846},

'n-C_12': {

'molar_mass': 170.339005,

'SG': 0.751145},

'n-C_13': {

'molar_mass': 184.367004,

'SG': 0.758814},

'n-C_14': {

'molar_mass': 198.380005,

'SG': 0.762913},

'n-C_15': {

'molar_mass': 212.410004,

'SG': 0.770405},

}

for compound, properties in data.items():

M = properties['molar_mass']

SG = properties['SG']

exponent = 3.7741e-3 * M + 2.98404 * SG - 4.25288e-8 * M * SG

T_b_K = 3.76587 * (math.exp(exponent)) * M**0.40167 * SG**(-1.58262)

properties['T_b_K'] = T_b_K

print("1. Словарь с температурами кипения в Кельвинах:")

for compound, properties in data.items():

print(f"{compound}: {properties}")

print("\n" + "="*60)

for compound, properties in data.items():

T_b_C = properties['T_b_K'] - 273.15 # Конвертация K -> °C

properties['T_b_C'] = T_b_C

print("2. Обновленный словарь с температурами в °C:")

for compound, properties in data.items():

print(f"{compound}: T_b = {properties['T_b_C']:.2f} °C")

print("\n" + "="*60)

filtered_data = {}

for compound, properties in data.items():

if 45 <= properties['T_b_C'] <= 180:

filtered_data[compound] = properties

print("3. Углеводороды с температурой кипения 45-180 °C:")

for compound, properties in filtered_data.items():

print(f"{compound}: T_b = {properties['T_b_C']:.2f} °C")

Ответ:

1. Словарь с температурами кипения в Кельвинах:

i-Pentane: {'molar_mass': 72.151001, 'SG': 0.623442, 'T_b_K': 374.31405892928973}

n-Pentane: {'molar_mass': 72.151001, 'SG': 0.629729, 'T_b_K': 375.39397483717386}

n-Hexane: {'molar_mass': 86.177902, 'SG': 0.662664, 'T_b_K': 432.6252975822744}

n-Heptane: {'molar_mass': 100.205002, 'SG': 0.686815, 'T_b_K': 492.1578061636203}

n-Octane: {'molar_mass': 114.232002, 'SG': 0.705377, 'T_b_K': 554.2122168915225}

n-Nonane: {'molar_mass': 128.259003, 'SG': 0.720247, 'T_b_K': 619.1603921676252}

n-Decane: {'molar_mass': 142.285004, 'SG': 0.732721, 'T_b_K': 687.4801397296258}

n-C_11: {'molar_mass': 156.313004, 'SG': 0.742846, 'T_b_K': 759.1791500350278}

n-C_12: {'molar_mass': 170.339005, 'SG': 0.751145, 'T_b_K': 834.5311696677487}

n-C_13: {'molar_mass': 184.367004, 'SG': 0.758814, 'T_b_K': 914.528198581931}

n-C_14: {'molar_mass': 198.380005, 'SG': 0.762913, 'T_b_K': 996.6748126192266}

n-C_15: {'molar_mass': 212.410004, 'SG': 0.770405, 'T_b_K': 1087.5827682919921}

============================================================

2. Обновленный словарь с температурами в °C:

i-Pentane: T_b = 101.16 °C

n-Pentane: T_b = 102.24 °C

n-Hexane: T_b = 159.48 °C

n-Heptane: T_b = 219.01 °C

n-Octane: T_b = 281.06 °C

n-Nonane: T_b = 346.01 °C

n-Decane: T_b = 414.33 °C

n-C_11: T_b = 486.03 °C

n-C_12: T_b = 561.38 °C

n-C_13: T_b = 641.38 °C

n-C_14: T_b = 723.52 °C

n-C_15: T_b = 814.43 °C

============================================================

3. Углеводороды с температурой кипения 45-180 °C:

i-Pentane: T_b = 101.16 °C

n-Pentane: T_b = 102.24 °C

n-Hexane: T_b = 159.48 °C

Соседние файлы в предмете Программирование на Python