일시 : 2018.01.09 9 : 00 ~ 11 : 00
내용 : 2018.01.08 클래스 예제 연습 후 나온 hw
수정
//
전등 lightFixture
lightFixtureList = [] 리스트에
lF = lightFixture() 로 인스턴스 객체를 만든 후
lightFixtureList.append(lF) 리스트 항목에 넣어줌
리스트 안 객체의 변수에 접근하기 위해서 lightFixtureList[index].필드
=> 결과적으로 lightFixtureList[0] 과 lF의 타입이 같음
class lightFixture :
machineName = ""
powerState = False
def setPowerOn(self):
self.powerState = True
def setPowerOff(self):
self.powerState = False
def isPowerState(self):
if self.powerState == True :
return True
else:
return False
def setMachineName(self, name):
self.machineName = name
def add_light():
name = input("전등의 이름을 지정하시오 : ")
lF = lightFixture()
lF.setMachineName(name)
lightFixtureList.append(lF)
print("# %s 전등이 추가되었습니다." % name)
print("")
def delete_light():
print("========현재 전등 상태========")
for i in range(0, len(lightFixtureList)):
print("전등 %d. %s " %(i+1,lightFixtureList[i].machineName))
del_light = int(input("\n>>삭제할 전등의 번호를 입력하세요 : "))
print("%s 전등이 삭제되었습니다.\n" % lightFixtureList[del_light-1].machineName)
del(lightFixtureList[del_light-1])
def check_light():
print("========현재 전등 상태========")
for i in range(0, len(lightFixtureList)):
print("전등 %d. %s => 스위치 상태 : %s" % (i+1,lightFixtureList[i].machineName, lightFixtureList[i].powerState))
print("")
def change_light():
change_light = int(input("# 스위치 상태를 변경하고 싶은 전등을 고르시오 : "))
print("")
print("=================================")
if lightFixtureList[change_light-1].powerState == True:
lightFixtureList[change_light-1].setPowerOff()
print("스위치가 꺼졌습니다")
else:
lightFixtureList[change_light-1].setPowerOn()
print("스위치가 커졌습니다.")
print("전등 %d. %s => 스위치 상태 : %s \n" %(change_light,lightFixtureList[change_light-1].machineName, lightFixtureList[change_light-1].powerState))
print("")
lightFixtureList = []
while True :
print("<<< MENU >>>")
print("1.전등 추가 2.전등 삭제 3.전등 상태 보기 4.스위치 바꾸기 5.종료")
select_menu = int(input("## 메뉴를 선택하세요 : "))
print("")
if select_menu == 1:
add_light()
elif select_menu == 2:
delete_light()
elif select_menu == 3:
check_light()
elif select_menu == 4:
change_light()
elif select_menu == 5:
print("프로그램을 종료합니다.")
break
수정1
str return 추가
★ 메서드 호출 뒤 뒤에 () 잊지말고 써주기
class lightFixture :
machineName = ""
powerState = False
'''strOn = ""
strOff = ""'''
def setPowerOn(self):
self.powerState = True
self.strOn = "Power On"
def setPowerOff(self):
self.powerState = False
self.strOff = "Power Off"
def isPowerState(self):
if self.powerState == True :
return "Power ON"
else:
return "Power OFF"
def setMachineName(self, name):
self.machineName = name
def add_light():
name = input("전등의 이름을 지정하시오 : ")
lF = lightFixture()
lF.setMachineName(name)
lF.isPowerState()
lightFixtureList.append(lF)
print("# %s 전등이 추가되었습니다." % name)
print("")
def delete_light():
check_light()
del_light = int(input("\n>>삭제할 전등의 번호를 입력하세요 : "))
print("%s 전등이 삭제되었습니다.\n" % lightFixtureList[del_light-1].machineName)
del(lightFixtureList[del_light-1])
def check_light():
print("========현재 전등 상태========")
str = ""
for i in range(0, len(lightFixtureList)):
print("전등 %d. %s => 스위치 상태 : %s" %(i+1,lightFixtureList[i].machineName, lightFixtureList[i].isPowerState()))
print("")
def change_light():
change_light = int(input("# 스위치 상태를 변경하고 싶은 전등을 고르시오 : "))
print("")
print("========선택한 전등 상태========")
print("전등 %d. %s => 스위치 상태 : %s \n" %(change_light,lightFixtureList[change_light-1].machineName, lightFixtureList[change_light-1].isPowerState()))
print("=================================")
u_answer = int(input("변경할 상태를 입력하세요 (1. 켜기 2. 끄기) : "))
if u_answer == 1 :
lightFixtureList[change_light-1].setPowerOn()
print("스위치가 커졌습니다.")
elif u_answer == 2 :
lightFixtureList[change_light-1].setPowerOff()
print("스위치가 꺼졌습니다")
else:
print("잘못 입력하셨습니다.")
print("\n========변경 후 전등 상태========")
print("전등 %d. %s => 스위치 상태 : %s \n" %(change_light,lightFixtureList[change_light-1].machineName, lightFixtureList[change_light-1].isPowerState()))
print("")
lightFixtureList = []
str = ""
while True :
print("<<< MENU >>>")
print("1.전등 추가 2.전등 삭제 3.전등 상태 보기 4.스위치 바꾸기 5.종료")
select_menu = int(input("## 메뉴를 선택하세요 : "))
print("")
if select_menu == 1:
add_light()
elif select_menu == 2:
delete_light()
elif select_menu == 3:
check_light()
elif select_menu == 4:
change_light()
elif select_menu == 5:
print("프로그램을 종료합니다.")
break
수정2
삭제할 전등 입력값 숫자 대신 문자로 받기
class lightFixture :
machineName = ""
powerState = False
'''strOn = ""
strOff = ""'''
def setPowerOn(self):
self.powerState = True
self.strOn = "Power On"
def setPowerOff(self):
self.powerState = False
self.strOff = "Power Off"
def isPowerState(self):
if self.powerState == True :
return "Power ON"
else:
return "Power OFF"
def setMachineName(self, name):
self.machineName = name
def add_light():
name = input("전등의 이름을 지정하시오 : ")
lF = lightFixture()
lF.setMachineName(name)
lF.isPowerState()
lightFixtureList.append(lF)
print("# %s 전등이 추가되었습니다." % name)
print("")
def delete_light():
check_light()
flag = 0
del_light = input("\n>>삭제할 전등을 입력하세요 : ")
for i in range(0, len(lightFixtureList)) :
if lightFixtureList[i].machineName == del_light :
flag = 1
del(lightFixtureList[i])
break
else :
flag = 0
if flag == 0 :
print("전등 삭제에 실패했습니다.\n")
elif flag == 1:
print("%s 이 삭제되었습니다.\n" % del_light)
def check_light():
print("========현재 전등 상태========")
str = ""
for i in range(0, len(lightFixtureList)):
print("전등 %d. %s => 스위치 상태 : %s" %(i+1,lightFixtureList[i].machineName, lightFixtureList[i].isPowerState()))
print("")
if len(lightFixtureList) <= 0:
print("현재 전등이 없습니다.\n")
def change_light():
change_light = int(input("# 스위치 상태를 변경하고 싶은 전등을 고르시오 : "))
print("")
print("========선택한 전등 상태========")
print("전등 %d. %s => 스위치 상태 : %s \n" %(change_light,lightFixtureList[change_light-1].machineName, lightFixtureList[change_light-1].isPowerState()))
print("=================================")
u_answer = int(input("변경할 상태를 입력하세요 (1. 켜기 2. 끄기) : "))
if u_answer == 1 :
lightFixtureList[change_light-1].setPowerOn()
print("스위치가 커졌습니다.")
elif u_answer == 2 :
lightFixtureList[change_light-1].setPowerOff()
print("스위치가 꺼졌습니다")
else:
print("잘못 입력하셨습니다.")
print("\n========변경 후 전등 상태========")
print("전등 %d. %s => 스위치 상태 : %s \n" %(change_light,lightFixtureList[change_light-1].machineName, lightFixtureList[change_light-1].isPowerState()))
print("")
lightFixtureList = []
str = ""
while True :
print("<<< MENU >>>")
print("1.전등 추가 2.전등 삭제 3.전등 상태 보기 4.스위치 바꾸기 5.종료")
select_menu = int(input("## 메뉴를 선택하세요 : "))
print("")
if select_menu == 1:
add_light()
elif select_menu == 2:
delete_light()
elif select_menu == 3:
check_light()
elif select_menu == 4:
change_light()
elif select_menu == 5:
print("프로그램을 종료합니다.")
break
최종_수정3
클래스변수 이용하여 전등의 개수 출력 및 전등 이름으로 입력받기.
class lightFixture :
machineName = ""
powerState = False
count = 0
def __init__(self, name):
self.machineName = name
lightFixture.count += 1
def setPowerOn(self):
self.powerState = True
'''self.str = "Power On"'''
def setPowerOff(self):
self.powerState = False
'''self.str = "Power Off"'''
def isPowerState(self):
if self.powerState == True :
return "Power ON"
else:
return "Power OFF"
def setMachineName(self, name):
self.machineName = name
def add_light():
name = input("전등의 이름을 지정하시오 : ")
##인스턴스 생성
lF = lightFixture(name)
'''lF.setMachineName(name)
lF.isPowerState()'''
lightFixtureList.append(lF)
print("# %s 전등이 추가되었습니다." % name)
print("# 현재 전등은 %d개 입니다." % lightFixture.count)
print("")
def delete_light():
check_light()
flag = 0
del_light = input("\n>>삭제할 전등을 입력하세요 : ")
for i in range(0, len(lightFixtureList)) :
if lightFixtureList[i].machineName == del_light :
flag = 1
del(lightFixtureList[i])
break
else :
flag = 0
if flag == 0 :
print("전등 삭제에 실패했습니다.\n")
elif flag == 1:
print("%s 이 삭제되었습니다.\n" % del_light)
def check_light():
print("========현재 전등 %d 개========" % lightFixture.count)
str = ""
for i in range(0, len(lightFixtureList)):
print("전등 %d. %s => 스위치 상태 : %s" %(i+1,lightFixtureList[i].machineName, lightFixtureList[i].isPowerState()))
print("")
if len(lightFixtureList) <= 0:
print("현재 전등이 없습니다.\n")
def change_light():
change_light = input("# 스위치 상태를 변경하고 싶은 전등을 고르시오 : ")
print("")
for i in range(0, len(lightFixtureList)):
if lightFixtureList[i].machineName == change_light:
print("========선택한 전등 상태========")
print("전등 %s. %s => 스위치 상태 : %s \n" %(change_light,lightFixtureList[i].machineName, lightFixtureList[i].isPowerState()))
print("=================================")
u_answer = int(input("변경할 상태를 입력하세요 (1. 켜기 2. 끄기) : "))
if u_answer == 1 :
lightFixtureList[i].setPowerOn()
print("스위치가 커졌습니다.")
elif u_answer == 2 :
lightFixtureList[i].setPowerOff()
print("스위치가 꺼졌습니다")
else:
print("잘못 입력하셨습니다.")
print("\n========변경 후 전등 상태========")
print("전등 %s. %s => 스위치 상태 : %s \n" %(change_light,lightFixtureList[i].machineName, lightFixtureList[i].isPowerState()))
break
print("")
## main
lightFixtureList = []
while True :
print("<<< MENU >>>")
print("1.전등 추가 2.전등 삭제 3.전등 상태 보기 4.스위치 바꾸기 5.종료")
select_menu = int(input("## 메뉴를 선택하세요 : "))
print("")
if select_menu == 1:
add_light()
elif select_menu == 2:
delete_light()
elif select_menu == 3:
check_light()
elif select_menu == 4:
change_light()
elif select_menu == 5:
print("프로그램을 종료합니다.")
break
'Computer Science > Programming practice' 카테고리의 다른 글
[Java] 최대공약수 구하기 (0) | 2018.04.07 |
---|---|
[Python] 다항식 계산하기 (0) | 2018.02.04 |
[Python] 단어 관리 프로그램 (0) | 2018.01.08 |
[Python] 별 출력 프로그램 (0) | 2018.01.06 |
[python] 소수 출력 프로그램 (0) | 2018.01.04 |