Exemplo n.º 1
0
 def input_w_or_consumption(state, space):
     input_temp = input(f'Какая характеристика {state} теплоносителя '
                        f'известна: скорость или расход? ').lower()
     if input_temp not in ('скорость', 'расход'):
         message = f'Введена некорректная характеристика {state} ' \
                   f'теплоносителя.'
         raise InputError(message)
     if input_temp == 'скорость':
         w = input(f'Введите скорость {state} теплоносителя, м/c: ')
         try:
             w = float(w)
         except ValueError:
             message = f'Введено некорректное значение скорости {state} ' \
                       f'теплоносителя.'
             raise InputError(message)
         if w <= 0:
             message = f'Введено отрицательное или нулевое значение ' \
                       f'скорости {state} теплоносителя.'
             raise InputError(message)
         consumption = None
         print('-' * 69)
         return w, consumption
     elif input_temp == 'расход':
         if space == 'in':
             consumption = input(f'Введите расход {state} теплоносителя, '
                                 f'кг/c: ')
             try:
                 consumption = float(consumption)
             except ValueError:
                 message = f'Введено некорректное значение расхода ' \
                           f'{state} теплоносителя.'
                 raise InputError(message)
             if consumption <= 0:
                 message = f'Введено отрицательное или нулевое значение ' \
                           f'расхода {state} теплоносителя.'
                 raise InputError(message)
             w = None
             print('-' * 69)
             return w, consumption
         elif space == 'out':
             message = 'Не предусмотрен расчет расхода без известного ' \
                       'значения диаметра кожуха теплообменного аппарата'
             raise CustomError(message)
Exemplo n.º 2
0
def el_lam_count(length: float, d: float) -> float:
    """Функция считает поправку на участок стабилизации
    при ламинарном режиме
    """
    el_m = [[1, 1.9], [4, 1.7], [5, 1.44], [10, 1.28], [15, 1.18], [20, 1.13],
            [30, 1.05], [40, 1.02], [50, 1]]
    if length / d >= 50:
        return 1
    elif length / d < 1:
        raise CustomError('Диаметр превышает значение длины трубы!')
    else:
        for i in el_m:
            if i[0] == length / d:
                return i[1]
            else:  # Если такого отношения нет, то делается интерполяция по
                # вышеуказанной функции interpolation
                for j in range(len(el_m)):
                    if el_m[j + 1][0] > length / d > el_m[j][0]:
                        return interpolation(el_m[j + 1][1], el_m[j][1],
                                             el_m[j + 1][0], el_m[j][0],
                                             length / d)