본문 바로가기
프로그램

[파이썬] 문제 : 할 일 관리 프로그램

by 오디세이99 2022. 12. 9.
728x90
반응형

work = []                                    # 작업 목록 리스트 변수

def display(w):                              # 작업 목록 출력 함수
    for i in range(len(w)):
        print(f"[{i+1}] {w[i][0]} : {w[i][1]}")


def completeCheck(w):                        # 완료작업 검사
    cnt = 0
    for i in range(len(w)):                 # 할일 수 만큼 반복
        if w[i][0] == '완료':
            cnt += 1
            
    # print(cnt, len(w))
    if cnt == len(w):                       # 완료수와 할일수가 같으면 모두 완료
        return 'complete'
    return ''


while True:                                 # 무한 반복
    display(work)                            # 몰록 출력
    action = input("1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: ")  # 작업 입력 받기
    
    if action.isnumeric() == 1:              # 작업 입력이 잘 못 되었는지 확인
        action = int(action)                 # 작업 입력이 잘 되었으면 작업 번호(정수)로 변환
    
        if action == 9:
            break                           # 종료면 반복 짜려나깜
        elif action == 1:                   # 
            ww = input("할 일을 입력하세요 : ")
            work.append(['계획',ww])         # 작업 추가
        elif action == 2:
            ss = input("삽입 위치와 할 일을 입력하세요(예:3,공부하기) : ")
            lst = ss.split(",")              # 번호와 할일 분리
            work.insert(int(lst[0])-1, ['계획',lst[1]])     # 추가
        elif action == 3:
            n = int(input("완료할 번호를 입력하세요 : "))
            work[n-1][0] = '완료'                           # 완료 처리
        elif action == 4:
            n = int(input("삭제할 번호를 입력하세요 : "))
            del work[n-1]                                   # 작업 삭제

        if completeCheck(work) == 'complete':                  # 모둔 작업이 완료되었다면
            print("수고하셨습니다. 휴가 가세요.")
    else:
        print('다시 선택해 주세요.')

결과

1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 1
할 일을 입력하세요 : 영어공부
[1] 계획 : 영어공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 수학공부
다시 선택해 주세요.
[1] 계획 : 영어공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 1
할 일을 입력하세요 : 수학공부
[1] 계획 : 영어공부
[2] 계획 : 수학공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 국어공부
다시 선택해 주세요.
[1] 계획 : 영어공부
[2] 계획 : 수학공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 1
할 일을 입력하세요 : 국어고웁
[1] 계획 : 영어공부
[2] 계획 : 수학공부
[3] 계획 : 국어고웁
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 4
삭제할 번호를 입력하세요 : 3
[1] 계획 : 영어공부
[2] 계획 : 수학공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 1
할 일을 입력하세요 : 국어공부
[1] 계획 : 영어공부
[2] 계획 : 수학공부
[3] 계획 : 국어공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 2
삽입 위치와 할 일을 입력하세요(예:3,공부하기) : 2,휴식
[1] 계획 : 영어공부
[2] 계획 : 휴식
[3] 계획 : 수학공부
[4] 계획 : 국어공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 3
완료할 번호를 입력하세요 : 1
[1] 완료 : 영어공부
[2] 계획 : 휴식
[3] 계획 : 수학공부
[4] 계획 : 국어공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 3
완료할 번호를 입력하세요 : 2
[1] 완료 : 영어공부
[2] 완료 : 휴식
[3] 계획 : 수학공부
[4] 계획 : 국어공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 3
완료할 번호를 입력하세요 : 3
[1] 완료 : 영어공부
[2] 완료 : 휴식
[3] 완료 : 수학공부
[4] 계획 : 국어공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 3
완료할 번호를 입력하세요 : 4
수고하셨습니다. 휴가 가세요.
[1] 완료 : 영어공부
[2] 완료 : 휴식
[3] 완료 : 수학공부
[4] 완료 : 국어공부
1) 추가, 2) 삽입, 3) 완료, 4) 삭제, 9) 종료: 9
728x90
반응형

댓글