본문 바로가기
코딩 연습/파이썬 기초(예제)

개인 도서 목록 관리 프로그램 [파이썬기초예제]

by good4me 2022. 6. 13.

goodthings4me.tistory.com

네이버 지식인에 올라온 질문 내용이 있어서 답을 주고, 내친김에 전체 코드를 간단하게 짜 보았다. 나중에 db와 연결하고 UI를 넣어서 완성하면 미니 도서 관리 프로그램이 될 것 같다. 

 

 

파이썬으로 짠 도서 목록 관리 프로그램

 

[파이썬 소스 코드]

books = [{'book_no':1, 'title':'친절한 한국사', 'author':'심용환', 'readingTime':'', 'status':'0'},
            {'book_no':2, 'title':'만들면서 배우는 파이썬과 40개의 작품들', 'author':'장문철', 'readingTime':'2022.05.07', 'status':'1'},
            {'book_no':3, 'title':'혼자 공부하는 파이썬', 'author':'윤인성', 'readingTime':'2021.12.31', 'status':'1'},
        ]


while True :
    print(f'\n{"#"*5} 독서 목록 관리 프로그램 {"#"*5}\n')
    print('1. 전체 조회')
    print('2. 도서 검색')
    print('3. 도서 추가')
    print('4. 도서 삭제')
    print('5. 프로그램 종료')

    menu_num = input('\n메뉴 선택 : ')
    
    if menu_num == '1':
        for i, book in enumerate(books, 1):
            if book['status'] == '0':
                status = '읽을 책'
            else:
                status = "읽은 책"
            print(f"\n도서관리번호: {book['book_no']} {'-'*10}\n제목: {book['title']}\n저자: {book['author']}\n읽은 일자: {book['readingTime']}\n상태: {status}\n")
    
    elif menu_num == '2':
        while True:
            search_title = input('\n검색할 도서명(검색 종료 "q") : ')
            if search_title.lower() == 'q':
                break
            else:
                s = 0
                for book in books:
                    if search_title in book['title']:
                        s += 1
                        print(f"\n도서관리번호: {book['book_no']}\n제목: {book['title']}\n저자: {book['author']}\n읽은 일자: {book['readingTime']}\n상태: {book['status']}\n")
                if not s:
                    print('검색 도서가 없습니다.\n')
                
    elif menu_num == '3':
        append_book = {}
        book_number = input('도서관리번호: ')
        book_title = input('책 이름: ')
        book_author = input('책 저자: ')
        reading_time = input('책 읽기 종료일: ')
        status = input('상태 입력(읽을 책 "0" / 읽은 책 "1"): ')

        append_book['book_no'] = book_number
        append_book['title'] = book_title
        append_book['author'] = book_author
        append_book['readingTime'] = reading_time
        append_book['status'] = status
        
        books.append(append_book)

    elif menu_num == '4':
        search_book_title = input('\n삭제할 책 이름 : ')
        for book in books:
            if search_book_title in book['title']:
                print(f"\n도서관리번호: {book['book_no']} / 제목: {book['title']} / 저자: {book['author']}\n")
        
        select_book = input("\n삭제할 '책 관리번호' ? : ")

        for i, book in enumerate(books):
            if int(select_book) == book['book_no']:
                del books[i]
                print(f'{books[i]} 삭제 완료!!')
        # print(books)
                
    elif menu_num == '5':
        print('\n프로그램을 종료합니다.\n')
        break

    elif menu_num not in ('1', '2', '3', '4', '5'):
        print('\n잘 못 입력하셨습니다.\n다시 입력하세요!!')
  • 상태 "0"과 "1"은 도서를 읽었는지, 아니면 읽을 책인지 구분하기 위해 넣은 상태 값이다.
  • 도서관리번호는 자동으로 숫자를 넣도록 만들 수 있는데, 여기서는 나중에 db table에 자동 증가를 할 것이기에 생략.
  • 도서 추가 시에도 잘 못 입력된 것을 확인하고 수정하도록 넣으면 온전한 CRUD가 될 것임.

 

good4me.co.kr

 

[실행 결과]

##### 독서 목록 관리 프로그램 #####

1. 전체 조회    
2. 도서 검색    
3. 도서 추가    
4. 도서 삭제    
5. 프로그램 종료

메뉴 선택 : 1   

도서관리번호: 1 ----------
제목: 친절한 한국사
저자: 심용환
읽은 일자:
상태: 읽을 책


도서관리번호: 2 ----------
제목: 만들면서 배우는 파이썬과 40개의 작품들
저자: 장문철
읽은 일자: 2022.05.07
상태: 읽은 책


도서관리번호: 3 ----------
제목: 혼자 공부하는 파이썬
저자: 윤인성
읽은 일자: 2021.12.31
상태: 읽은 책


##### 독서 목록 관리 프로그램 #####

1. 전체 조회
2. 도서 검색
3. 도서 추가
4. 도서 삭제
5. 프로그램 종료

메뉴 선택 : 2

검색할 도서명(검색 종료 "q") : 파이썬

도서관리번호: 2
제목: 만들면서 배우는 파이썬과 40개의 작품들
저자: 장문철
읽은 일자: 2022.05.07
상태: 1


도서관리번호: 3
제목: 혼자 공부하는 파이썬
저자: 윤인성
읽은 일자: 2021.12.31
상태: 1

검색할 도서명(검색 종료 "q") : ㅂ
검색 도서가 없습니다.


검색할 도서명(검색 종료 "q") : q

##### 독서 목록 관리 프로그램 #####

1. 전체 조회
2. 도서 검색
3. 도서 추가
4. 도서 삭제
5. 프로그램 종료

메뉴 선택 : 3
도서관리번호: 4
책 이름: 여덟 건의 완벽한 살인
책 저자: 피터 스완슨 저/노진선 역
책 읽기 종료일: 
상태 입력(읽을 책 "0" / 읽은 책 "1"): 0

##### 독서 목록 관리 프로그램 #####

1. 전체 조회
2. 도서 검색
3. 도서 추가
4. 도서 삭제
5. 프로그램 종료

메뉴 선택 : 1

도서관리번호: 1 ----------
제목: 친절한 한국사
저자: 심용환
읽은 일자:
상태: 읽을 책


도서관리번호: 2 ----------
제목: 만들면서 배우는 파이썬과 40개의 작품들
저자: 장문철
읽은 일자: 2022.05.07
상태: 읽은 책


도서관리번호: 3 ----------
제목: 혼자 공부하는 파이썬
저자: 윤인성
읽은 일자: 2021.12.31
상태: 읽은 책


도서관리번호: 4 ----------
제목: 여덟 건의 완벽한 살인
저자: 피터 스완슨 저/노진선 역
읽은 일자:
상태: 읽을 책


##### 독서 목록 관리 프로그램 #####

1. 전체 조회
2. 도서 검색
3. 도서 추가
4. 도서 삭제
5. 프로그램 종료

메뉴 선택 : 4

삭제할 책 이름 : 만들면서

도서관리번호: 2 / 제목: 만들면서 배우는 파이썬과 40개의 작품
들 / 저자: 장문철


삭제할 '책 관리번호' ? : 2
{'book_no': 3, 'title': '혼자 공부하는 파이썬', 'author': '
윤인성', 'readingTime': '2021.12.31', 'status': '1'} 삭제 완
료!!

##### 독서 목록 관리 프로그램 #####

1. 전체 조회
2. 도서 검색
3. 도서 추가
4. 도서 삭제
5. 프로그램 종료

메뉴 선택 : 5

프로그램을 종료합니다.

 

 

댓글