class Program: def __init__(self) -> None: self.count_of_numbers = 0 self.numbers = list[int]() self.result = 0 def get_number(self, value_name: str) -> int: print(f"Enter the {value_name}:\t", end="") value_name = value_name[0].upper() + value_name[1:] while True: try: return int(input()) except ValueError: print(f"{value_name} must be 10-based number! Try again: ", end="") def get_count_of_numbers(self) -> None: self.count_of_numbers = self.get_number("count of numbers") def get_numbers(self) -> None: while len(self.numbers) < self.count_of_numbers: self.numbers.append(self.get_number("number")) def filter_numbers(self) -> None: self.numbers = list(filter(lambda x: not x%9, self.numbers)) self.numbers = list(filter(lambda x: str(x)[-1] == "6", self.numbers)) def calculate_result(self) -> None: if len(self.numbers) == 0: self.result = 0 else: self.result = max(self.numbers) - min(self.numbers) def print_result(self) -> None: print(self.result) def run(self) -> None: self.get_count_of_numbers() self.get_numbers() self.filter_numbers() self.calculate_result() self.print_result() if __name__ == "__main__": program = Program() program.run()