본문 바로가기
Python/☞

[38]-A. 리스트 컨트롤러

by TR. 2020. 7. 23.
# 리스트 컨트롤러[2단계]

# 1. 추가
# . 값을 입력받아 순차적으로 추가
# 2. 삭제(인덱스)
# . 인덱스를 입력받아 해당 위치의 값 삭제
# 3. 삭제(값)
# . 값을 입력받아 삭제
# . 없는 값 입력 시 예외처리
# 4. 삽입
# . 인덱스와 값을 입력받아 삽입

# 삭제 시, 주의 : 재정렬
# . [10, 20, 0, 40, 50] -> X
# . [10, 20, 40, 50, 0] -> O

datas = [0, 0, 0, 0, 0]
cnt = 0

while True:
     print("--- Controller ---")
     # print
     for i in range(5):
          print("[%d]" % i, datas[i])
     print("------------------")
     print("1) 추가\n2) 삭제(인덱스)\n3) 삭제(값)\n4) 삽입")
     print("------------------")
     sel = int(input("메뉴 입력 : "))

     if sel == 1:
          if cnt != 5:
               data = input("값을 입력하세요 : ")
               datas[cnt] = data
               cnt += 1
          else:
               print("더 이상 추가할 수 없습니다.")
     elif sel == 2:
          del_idx = int(input("삭제할 인덱스를 입력하세요 : "))
          if datas[del_idx] != 0:
               # align
               for i in range(del_idx,cnt-1):
                    datas[i] = datas[i+1]
               datas[cnt-1] = 0
               cnt -= 1
          else:
               print("값이 존재하지 않습니다.")
     elif sel == 3:
          del_data = input("삭제할 값을 입력하세요 : ")
          del_idx = -1
          for i in range(5):
               if del_data == datas[i]:
                    del_idx = i
          if del_idx != -1:
               # align
               for i in range(del_idx,cnt-1):
                    datas[i] = datas[i+1]
               datas[cnt-1] = 0
               cnt -= 1
          else:
               print("값이 존재하지 않습니다.")
     elif sel == 4:
          if cnt != 5:
               idx = int(input("삽입할 인덱스를 입력하세요 : "))
               data = input("저장할 값을 입력하세요 : ")
               # insert
               for i in range(4,idx,-1):
                    datas[i] = datas[i-1]
               datas[idx] = data
               cnt += 1
          else:
               print("더 이상 추가할 수 없습니다.")
     else:
          print("잘못 입력했습니다.")

'Python > ' 카테고리의 다른 글

[40] 다차원 리스트  (0) 2020.07.23
[39] 리스트 함수  (0) 2020.07.23
[38] 리스트 컨트롤러  (0) 2020.07.23
[37]-A. 정렬  (0) 2020.07.23
[37] 정렬  (0) 2020.07.23

댓글