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)
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)