Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # system - ф-я для запуска комманд терминала
- # name - для определения ОС пользователя
- from os import system, name
- # Лимит для вводимых значений
- limit = 10 ** 6
- # Тот же лимит, но в более приятном виде
- limit_str = '10 ^ 6'
- def main():
- """ Главная ф-я """
- # Цикл нужен, чтобы не останавливать программу
- # в случае ошибки, а просто "перезагружать" её
- while True:
- # Выводим необходимую для пользователя информацию
- print('Требования:')
- print('\t1. числа a и b - целые значения')
- print('\t2. числа a и b не больше 10 ^ 6')
- print('\t3. число a меньше b')
- print()
- # Начало блока "Ввод"
- print('Ввод:')
- # Проверяем соблюдают ли вводимые значения требованиям
- inp_a = input('\ta = ')
- result = check_value(inp_a)
- if result == 'error':
- continue
- # Поскольку b > a > c, то a всегда будет медианой
- a = median = result
- inp_b = input('\tb = ')
- result = check_value(inp_b)
- if result == 'error':
- continue
- b = result
- if a >= b:
- error("'a' должна быть меньше 'b'")
- continue
- print()
- break
- # Начало блока "Результат"
- print('Результат:')
- # Поскольку медиана уже извнстна, составить
- # уравнение и вычислить c совсем не сложно:
- # (a + b + c) / 3 = median =>
- # a + b + c = median * 3 =>
- c = median * 3 - (a + b)
- print('\tc =', c)
- def check_value(value):
- """
- Проверяет value на соблюдение требований
- и возвращает его в виде числа в случае успеха,
- иначе строку 'error'
- """
- result = ''
- if not isinteger(value):
- error('должно быть целочисленное значение')
- result = 'error'
- else:
- result = int(value)
- if result > limit:
- error('число превышает заданный лимит (%s)' % limit_str)
- result = 'error'
- return result
- def isinteger(string):
- """
- Проверяет явл. ли string целочисленным значением
- P.S.: ф-я isdigit (isdecimal и isnumeric тоже)
- не учитывает унарные '-' и '+',
- поэтому пришлось создавать свою
- """
- if string[0] in ('-', '+'):
- string = string[1:]
- return string.isdigit()
- def error(message):
- """ Выводит ошибку """
- print('Ошибка:', message)
- input('Нажмите клавишу "Enter" для перезагрузки')
- clear()
- def clear():
- """ Очищяет терминал """
- # Если Windows, то cls, иначе clear (Linux, Mac OS)
- system('cls' if name == 'nt' else 'clear')
- # Запускать программу если файл явл. главным
- if __name__ == '__main__':
- main()
Add Comment
Please, Sign In to add comment