Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from time import sleep
- class TrafficLight:
- """
- Класс светофора, умеет менять цвета
- """
- # Ассоциация цветов и времени их свечения
- COLOR_TIMES = {'Красный': 3,
- 'Желтый': 2,
- 'Зеленый': 3}
- # Списк цветов чтобы их можно было получать по индексу
- __colors_list = ['Красный','Желтый','Зеленый']
- # Индекс цвета с которого запускается светофор
- __start_color_index = 0
- # Цвет который в данный момент имеет светофор
- __color = None
- change_count = 3 # По дефолту сменяем три раза
- def __init__(self, init_color='Красный'):
- """
- Функция выполняемая при создании обекта класса
- """
- # Если init_color есть среди доступных цветов __color примет такое же значение, иначе __color будет Красный
- self.__color = init_color if init_color in self.__colors_list else 'Красный'
- # Записываем индекс первого цвета
- self.__start_index = self.__colors_list.index(self.__color)
- def running(self, change_count):
- """
- Функция которая меняет цвета заданное количество раз
- """
- # Выполняем заданное количество раз
- for i in range(change_count):
- # Получаем следующий индекс
- num_color = (i + self.__start_index) % 3
- # Получаем цвет по индексу
- self.__color = self.__colors_list[num_color]
- # Печатаем цвет
- print(self.__color)
- # Засыпаем на заданное количество секунд
- sleep(self.COLOR_TIMES[self.__color])
- if __name__ == '__main__':
- # Создаем объект светофора
- lights = TrafficLight('Зеленый')
- # Спрашиваем сколько раз менять цвет
- change_count = input('Сколько раз поменяем цвета?: ')
- # До тех пор пока change_count не является числом запрашиваем его заново
- while not change_count.isdigit():
- change_count = input('Введите целое число: ')
- change_count = int(change_count)
- # Запускаем смену цвета заданное количество раз
- lights.running(change_count)
Add Comment
Please, Sign In to add comment