Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу в питоне

Данил Ученик (96), закрыт 6 месяцев назад
№1: Построить класс РядЛампочек (LampRow), который хранит состояние ряда из 8 лампочек в виде символьной строки. Цифра 0 обозначает выключенную лампочку, цифра 1 – включенную.

Свойство state скрывает внутреннюю переменную __state, которая хранит состояние лампочек. При записи нового значения проверяется, что длина строки состояния равна 8, иначе записываются все нули.

Метод show выводит на экран состояние лампочек, обозначая выключенную лампочку как минус, а включённую – как «*».

Пример:

lamps = LampRow()

lamps.show() --------

lamps.state = "10101010"

print( lamps.state ) 10101010

lamps.show() *-*-*-*-



№2: Дополните класс LampRow из задания A так, чтобы количество лампочек в цепочке можно было задавать в конструкторе.

Пример:

lamps = LampRow( 6 )

lamps.show() ------

lamps.state = "101010"

print( lamps.state ) 101010 lamps.show() *-*-*-

lamps.state = "10101010" # ошибка

print( lamps.state ) 000000 lamps.show() ------



№3: Дополните класс LampRow из задания B так, чтобы лампочки могли гореть одним из двух цветов – красный цвет имеет код 1 и обозначается при выводе как «*», а зелёный цвет имеет код 2 и обозначается как «о».

Пример:

lamps = LampRow( 6 )

lamps.show() ------

lamps.state = "102102"

print( lamps.state ) 102102 lamps.show() *-o*-o

lamps.state = "10201010" # ошибка

print( lamps.state ) 000000 lamps.show() ------
Лучший ответ
Лев Михайлов Мыслитель (7245) 2 года назад
1
 class LampRow: 
def __init__(self):
self.__state = "0"*8

@property
def state(self):
return self.__state

@state.setter
def state(self, value):
if len(value) == 8:
self.__state = value
else:
self.__state = "0"*8

def show(self):
print("".join("-" if char == "0" else "*" for char in self.__state))
2
 class LampRow: 
def __init__(self, num_lamps):
self.num_lamps = num_lamps
self.__state = "0"*num_lamps

@property
def state(self):
return self.__state

@state.setter
def state(self, value):
if len(value) == self.num_lamps:
self.__state = value
else:
self.__state = "0"*self.num_lamps
print("error: invalid state string length")

def show(self):
print("".join("-" if char == "0" else "*" for char in self.__state))
3
 class LampRow: 
def __init__(self, num_lamps):
self.num_lamps = num_lamps
self.__state = "0"*num_lamps

@property
def state(self):
return self.__state

@state.setter
def state(self, value):
if len(value) == self.num_lamps:
self.__state = value
else:
self.__state = "0"*self.num_lamps
print("error: invalid state string length")

def show(self):
print("".join("*" if x == "1" else "o" if x == "2" else "-" for x in self.__state))
Остальные ответы
Похожие вопросы