Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #рекурсивная добыча числа
- def input_number(input_string: str = 'Введите число: ',
- min_num: int = None,
- max_num: int = None,
- is_float: bool = False) -> int:
- '''
- Функция проверки на число
- input_string - строка с требованием ввода. По умолчанию "Введите число: "
- min_num - минимальный диапазон
- max_num - максимальный диапазон
- is_float - флаг, нужно ли значение float
- '''
- if not isinstance(is_float, bool):
- raise ValueError('Значение is_float должно быть булевым')
- elif min_num: # если min_num задан
- try:
- min_num = float(min_num) if is_float else int(min_num)
- except:
- raise ValueError('Значение min_num должно быть числом')#вызываем ошибку с этим текстом
- elif max_num:
- try:
- max_num = float(max_num) if is_float else int(max_num)
- except:
- raise ValueError('Значение max_num должно быть числом')
- params=input_string,min_num,max_num,is_float
- try:
- num = input(input_string)
- num = float(num) if is_float else int(num)
- if min_num and num<min_num:
- print(f'Число должно быть больше {min_num}')
- return input_number(params)
- elif max_num and num > max_num:
- print(f'Число должно быть меньше {max_num}')
- return input_number(params)
- except ValueError:
- print('Вы ввели не число')
- return input_number(params)
- #поднимает ошибки при неправильном вводе числа
- def check_number(input_string: str = 'Введите число: ',
- min_num: int = None,
- max_num: int = None,
- is_float: bool = False) -> int:
- '''
- Функция проверки на число
- input_string - строка с требованием ввода. По умолчанию "Введите число: "
- min_num - минимальный диапазон
- max_num - максимальный диапазон
- is_float - флаг, нужно ли значение float
- '''
- if not isinstance(is_float, bool):
- raise ValueError('Значение is_float должно быть булевым')
- elif min_num: # если min_num задан
- try:
- min_num = float(min_num) if is_float else int(min_num)
- except:
- raise ValueError('Значение min_num должно быть числом')#вызываем ошибку с этим текстом
- elif max_num:
- try:
- max_num = float(max_num) if is_float else int(max_num)
- except:
- raise ValueError('Значение max_num должно быть числом')
- params=input_string,min_num,max_num,is_float
- try:
- num = input(input_string)
- num = float(num) if is_float else int(num)
- if min_num and num<min_num:
- raise ValueError(f'Число должно быть больше {min_num}')
- elif max_num and num > max_num:
- raise ValueError(f'Число должно быть меньше {max_num}')
- except ValueError:
- raise ValueError('Вы ввели не число')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement