ЛБ3
.docx
Инженерная школа природных ресурсов
Направление подготовки Химическая технология
Отделение химической инженерии
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА PYTHON
Отчет по лабораторной работе № 3
Строки, списки и кортежи
Выполнил студент гр. ХИМ54 А.В. Чижова
(Подпись)
21.10.2025 г.
Отчет принят:
Преподаватель
доцент ОХИ ИШПР, к.т.н. В.А. Чузлов
(Подпись)
_____ _____________ 2025 г.
Томск 2025 г.
Исходные данные
Параметр |
C1 |
C2 |
C3 |
iC4 |
nC4 |
iC5 |
nC5 |
C6 |
ωi |
0.1 |
0.1 |
0.1 |
0.4 |
0.2 |
0.05 |
0.03 |
0.02 |
ρi, г/см3 |
0.416 |
0.546 |
0.585 |
0.5510 |
0.6 |
0.616 |
0.6262 |
0.6594 |
Mi, г/моль |
16 |
30 |
44 |
58 |
58 |
72 |
72 |
86 |
Задание 1
Используя исходные данные, рассчитайте:
Состав потока в мольных долях:
-
(1)
где
- мольная доля i-го компонента;
- массовая доля i-го компонента;
- молярная масса i-го компонента;
- число компонентов в системе;
- индекс компонента в системе.
Проверить, равна ли сумма рассчитанных мольных долей 1.0.
Плотность потока:
-
(2)
где
ρ - плотность потока;
- массовая доля i-го компонента;
- плотность i-го компонента;
- число компонентов в системе;
- индекс компонента в системе.
Среднюю молекулярную массу потока:
-
(3)
где
- средняя молекулярная масса потока;
- массовая доля i-го компонента;
- молярная масса i-го компонента;
- число компонентов в системе;
- индекс компонента в системе.
Программная реализация:
w = [.1, .1, .1, .4, .2, .05, .03, .02]
p = [.416, .546, .585, .5510, .6, .616, .6262, .6594]
M = [16, 30, 44, 58, 58, 72, 72, 86]
#3. Средняя молекулярная масса потока
a = [w[i]/M[i] for i in range(len(w))]
s = sum(a)
m = 1/s
#1. Состав потока в мольных долях
x = [b * m for b in a ]
X = sum(x)
#2. Плотность потока
c = [w[i] / p[i] for i in range(len(w))]
s_2 = sum(c)
P = 1 / s_2
for d in x:
print(f'{d:.3f}')
if X == 1:
print("Сумма рассчитанных мольных долей равна 1,0")
else:
print("Сумма рассчитанных мольных долей не равна 1,0")
print(f'Плотность потока равна {P:.3f}')
print(f'Средняя молекулярная масса потока равна {m:.2f}')
Ответ:
0.265
0.142
0.097
0.293
0.146
0.029
0.018
0.010
Сумма рассчитанных мольных долей равна 1,0
Плотность потока равна 0.552
Средняя молекулярная масса потока равна 42.47
Задание 2
Необходимо создать список, элементы которого будут числа от 1 до 10, возведенные в квадрат, если число четное и в степени ½, если число нечетное. Выведите элементы данного списка на экран в формате 8.4f.
Выведите элементы данного списка в порядке уменьшения величины их значений.
Программная реализация:
lst = [i**2 if i % 2 == 0 else i**0.5 for i in range(1, 11)]
print("1. Список:")
for x in lst:
print(f"{x:8.4f}")
print("\n2. В порядке убывания:")
for x in sorted(lst, reverse=True):
print(f"{x:8.4f}")
Ответ:
1. Список:
1.0000
4.0000
1.7321
16.0000
2.2361
36.0000
2.6458
64.0000
3.0000
100.0000
2. В порядке убывания:
100.0000
64.0000
36.0000
16.0000
4.0000
3.0000
2.6458
2.2361
1.7321
1.0000
Задание 3
Используя исходные данные, заполните список, значениями которого будут являться плотности углеводородов, рассчитанные по формуле:
|
(4) |
Где
– расчетное значение плотности
углеводорода,
;
MW
– молярная масса углеводорода.
Оцените относительную погрешность рассчитанных значений плотности углеводородов, используя следующую формулу:
|
(5) |
Где
– расчетное значение плотности i-го
углеводорода,
;
– табличное значение (исходные данные)
плотности i-го
углеводорода.
Программная реализация:
import math
w = [.1, .1, .1, .4, .2, .05, .03, .02]
p = [.416, .546, .585, .5510, .6, .616, .6262, .6594]
M = [16, 30, 44, 58, 58, 72, 72, 86]
P = [1.07-math.exp(3.56073-2.93886*M[i]**0.1) for i in range(len(M))]
delta = [abs(P[i]-p[i])/p[i]*100 for i in range(len(P))]
print("P:"); print('\n'.join(f'{x:8.4f}' for x in P))
print("\ndelta:"); print('\n'.join(f'{x:8.4f}' for x in delta))
Ответ:
P:
0.3418
0.5037
0.5881
0.6426
0.6426
0.6819
0.6819
0.7120
delta:
17.8471
7.7392
0.5227
16.6305
7.1056
10.7001
8.8970
7.9826
Задание 4
Пусть на смешение поступают материальные потоки следующего состава (массовые доли)
Поток |
|
|
|
|
|
|
|
|
1 |
0.1 |
0.1 |
0.1 |
0.4 |
0.2 |
0.05 |
0.03 |
0.02 |
2 |
0.1 |
0.2 |
0.1 |
0.3 |
0.1 |
0.15 |
0.03 |
0.02 |
3 |
0.1 |
0.1 |
0.15 |
0.35 |
0.1 |
0.05 |
0.08 |
0.07 |
Расходы потоков 100, 150 и 120 кг/ч, соответственно. Необходимо рассчитать состав итогового потока в массовых долях.
Состав смесевого потока в массовых долях можно найти следующим образом:
|
(6) |
Где
– массовые доля i-го
компонента в смесевом потоке;
– массовая доля i-го
компонента в j-ом
потоке;
– массовый расход j-го
потока, кг/ч; j
– индекс потока; i
– индекс компонента в системе; n
– число потоков, подаваемых на смешение.
Программная реализация:
w = [[.1, .1, .1, .4, .2, .05, .03, .02],
[.1, .2, .1, .3, .1, .15, .03, .02],
[.1, .1, .15, .35, .1, .05, .08, .07]]
q = [100, 150, 120]
W = [sum(wj[i] * qj for wj, qj in zip(w, q)) / sum(q) for i in range(len(w[0]))]
print("Состав итогового потока:")
print('\n'.join(f"Компонент {i+1}: {omega:.4f}" for i, omega in enumerate(W)))
Ответ:
Состав итогового потока:
Компонент 1: 0.1000
Компонент 2: 0.1405
Компонент 3: 0.1162
Компонент 4: 0.3432
Компонент 5: 0.1270
Компонент 6: 0.0905
Компонент 7: 0.0462
Компонент 8: 0.0362
