요즘 Good Code Bad Code 책을 풀잎러닝(flip learning)으로 배우면서 협업을 위해 코드를 짤 땐 어떤점을 주의해야하는지 배우고있다!
기본이 C언어로 되어있어서 쉽게 이해하긴 어렵지만, 지난주까지 앞에 이론 부분을 끝내고 오늘은 실습을 진행했다!
아래는 퍼실님이 제시한 상황!
혹시 보시는 분이 계시다면 같이 해보셔도 재밌습니당:)!
💡 상황
발주사는 물류 창고에서 화물을 조회, 추가, 삭제, 시스템 On/OFF 기능이 있는 시스템 제작을 의뢰했고 해당 System을 구현하여 납품해야 한다.
물류 조회(Read), 추가(Create), 삭제(Delete), 시스템 종료 기능에 접근할 수 있는 중앙 시스템을 CLI으로 구현할 것.
현 시스템에 등록된 모든 화물(물건) 데이터를 출력하는 시스템을 CLI으로 구현할 것.
현 시스템에 화물(물건) 데이터를 추가하는 기능을 CLI으로 구현할 것.
현 시스템에 화물(물건) 데이터를 삭제하는 기능을 CLI으로 구현할 것.
현 중앙 시스템의 동작을 종료하는 기능을 CLI으로 구현할 것.
(self)
넣고 class 변수 적용할 때 self.변수명
으로 받기while(1):
로 무한반복 걸어놓으면 내부 함수에서 return시 while문 다시 시작if __name__ == '__main__': \ main()
메인으로 돌아가게 하는 코드main()
으로 받을 수 없음 => 그냥 return
or continue
하면 돌아감 class CargoSystem():
# 빈 item_list 생성
item_list = ['물류1', '물류2', '물류3', '물류4', '물류5']
########## [1] 물류조회 ############
def item_search(self):
for idx, value in enumerate(self.item_list):
print(f'{idx} : {value}')
return
########## [2] 물류 추가(상차) ############
def item_add(self):
new_item = input('추가할 물건의 이름을 입력해주세요 : ')
print(f'추가하려는 물건이 {new_item} 이/가 맞습니까?')
add_sure = str(input('Y/N : '))
add_sure = add_sure.upper()
#### Y/N 상황 구현 ####
if add_sure == 'Y':
self.item_list.append(new_item)
print(f'{new_item} 이/가 추가되었습니다!')
return
else:
print("중앙 시스템 메뉴로 돌아갑니다.")
return
########### [3] 물류출고(하차) #############
def item_del(self):
for idx, value in enumerate(self.item_list):
print(f'{idx} : {value}')
print('\n[물류하차] 출고할 물건의 번호를 입력해주세요 (0부터 시작)')
del_num = int(input('물건 번호 : '))
print(f'삭제하려는 물건의 번호가 {del_num}가 맞습니까?')
del_sure = str(input('Y/N : '))
del_sure = del_sure.upper()
# 예외상황 처리
try:
if del_sure == 'Y':
del self.item_list[del_num]
print('물건이 출고되었습니다!')
return
else:
print("중앙 시스템 메뉴로 돌아갑니다.")
return
except:
print('해당 숫자의 물건번호가 없습니다.')
print("중앙 시스템 메뉴로 돌아갑니다.")
return
############# [4] 시스템 종료 ###########
def shutdown(self):
print('시스템을 종료합니다.')
return exit()
def print_main_message():
# main message & select number input
print('\n','==' * 20)
print('물류센터 시스템에 오신 것을 환영합니다:)!')
print('[1] 물류조회 [2] 물류 추가(상차) [3] 물류출고(하차) [4] 시스템 종료')
def main():
cargo_manager = CargoSystem()
# 무한반복
while(1):
print_main_message()
select_num = int(input('실행 번호 : '))
#### 해당 number 구현 ######
if (select_num == 1) :
cargo_manager.item_search()
elif (select_num == 2):
cargo_manager.item_add()
elif (select_num == 3):
cargo_manager.item_del()
elif (select_num == 4):
cargo_manager.shutdown()
if __name__ == '__main__':
main()