리스트를 활용한 간단한 걸 하나 만들고 싶어서 제미나이한테 뭐가 좋을지 물어봤더니 아래와 같은 걸 만들라고 했다.
간단한 '할 일 목록' (To-Do List) 프로그램
핵심 목표: 사용자 입력(I), 저장(C/U), 조회(R), 삭제(D)의 CRUD 기본 로직을 익힙니다.
구현 기능:
메뉴 화면: "1. 할 일 추가",
"2. 할 일 조회",
"3. 할 일 삭제",
"4. 종료"
등을 출력하고 사용자로부터 선택을 받습니다.
데이터 저장: 할 일을 **파이썬 리스트(List)**에 저장하고, 각 할 일에 번호를 부여합니다.
흐름 제어: 사용자가 '4'를 선택하기 전까지 프로그램이 계속 실행되도록 while 무한 루프를 사용합니다.
ToDo = []
i = 0
choice = 0
print("----TODOLIST 프로그램----")
print("1. 할 일 추가")
print("2. 할 일 조회")
print("3. 할 일 삭제")
print("4. 종료")
print("-------------------------")
while (choice != "4"):
choice = (input("번호를 입력하세요. "))
# 할 일 추가
if (choice == "1"):
todolist = ""
print("할 일을 입력하세요")
print("종료는 exit")
while (todolist != "exit"):
todolist = input()
if (todolist != "exit"):
ToDo.append(todolist)
# 할 일 조회
elif (choice == "2"):
for idx, val in enumerate(ToDo, start = 1):
print(idx, val)
#할 일 삭제
elif (choice == "3"):
for idx, val in enumerate(ToDo, start = 1 ):
print(idx, val)
number = int(input("삭제할 번호를 입력하세요. "))
number = number-1
del(ToDo[number])
print("삭제 제되었습니다.")
#종료
elif (choice == "4"):
print("TODOLIST가 종료됩니다.")
#잘못 입력
else:
print("잘못 입력하셨습니다. 다시 입력해주세요.")
내가 짠 코드이다. 간단하게 빠르게 짤 수 있었고 배운 리스트를 활용할 수 있었다. 하지만 받은 할 일 목록을 조회할 때 번호를 부여해서 보여주고 싶었는데 리스트를 인덱스 번호와 함께 출력하는 법을 몰랐다. 찾아보니 enumerate() 를 사용하면 각 요소를 (인덱스, 값) 형태로 출력할 수 있다고 했다.
fruits = ["apple", "banana", "cherry"]
for idx, val in enumerate(fruits):
print(idx, val)
>> 0 apple
1 banana
2 cherry
인덱스 번호를 1부터 시작하고 싶다면 start 옵션을 쓰면 된다.
for idx, val in enumerate(fruits, start=1):
print(idx, val)
>> 1 apple
2 banana
3 cherry
여기서 idx 와 val은 변수 이름으로 enmerate(fruits)가 반환하는 (인덱스, 값) 쌍을 받아서 각각에 할당하는 역할을 한다.
enmerate() 는 반복할 때마다 아래와 같은 형태의 튜플을 생성한다.
(0, "apple")
(1, "banana")
(2, "cherry")
즉, 인덱스 번호와 리스트의 실제 값이 들어있는 튜플이다.
enumerate() 는 내가 공부하는 책에는 없던 함수이다. 내가 배운 리스트로 투두리스트를 만들고 조금 더 보기 편하게 하고 싶어 찾아보다가 또 이렇게 하나의 함수를 더 알게 됐다!
'Programing > 파이썬 공부' 카테고리의 다른 글
| [Python] 리스트, 튜플, 딕셔너리 정리 (0) | 2025.11.09 |
|---|---|
| [Python] 리스트 활용 (0) | 2025.11.08 |
| [Python] 리스트 정리 (0) | 2025.10.10 |