次のプロパティを持つクラス SwitchBoard を作成したいと思います。
スイッチボードを作成するとき、スイッチボードに含まれるスイッチの数を設定できる必要があります。すべてのスイッチは「オフ」の位置から開始する必要があります。
配電盤を印刷すると、「次のスイッチがオンになっています: 1 3 5 7 9」という行に沿って何かが印刷されるはずです。
n を整数として switch(n) を呼び出すと、n 番目のライトスイッチのステータスを ip する必要があります
n を整数として switch every(n) を呼び出すと、n 番目ごとのライトスイッチのステータスを ip する必要があります
上記のように、ライトスイッチの問題を解決するグローバル コードを書くことができるはずです。
これはこれまでの私の作業です。最初はクラスですLightSwitch
スイッチがオンの場合、反転してオフになります
スイッチがオフの場合、反転してオンになります
class LightSwitch():
def __init__(self, mode):
self.switch = mode
def __str__(self):
if self.switch == True:
return ("I am on")
if self.switch == False:
return ("I am off")
def turn_on(self):
self.switch = True
def turn_off(self):
self.switch = False
def flip(self):
if self.switch == True:
self.switch = False
else:
self.switch = True
クラスのSwitchBoard
場合、これは私が持っているものです:
class SwitchBoard():
def __init__(self, n):
self.switches = []
for i in range(n):
self.switches.append(LightSwitch(False))
def switch(self, n):
self.switches[n].flip()
def switch_every(self, n):
for i in range(0,len(self.switches), n):
switch(i)
def __str__(self):
return "The following switches are on: " + str(self.switches)
if __name__ == ('__main__'):
my_light = LightSwitch(False)
my_light.flip()
print (my_light) # This prints "I am on"
my_light2 = LightSwitch(True)
my_light2.flip()
print(my_light2) # This prints "I am off"
my_switchboard = SwitchBoard(10) # This is the issue.
my_switchboard.switch_every(2)
print (my_switchboard)
これはうまくいきません。リストを使用してオフ スイッチの数を追加していますが、シーケンス内でスイッチをオンにするなど、この問題を解決するためのグローバル コードを記述する方法がわかりません。または、何かが不足している可能性があります。 、 助けてください。