노트 :

주소록 프로젝트 본문

Python

주소록 프로젝트

IT_달토끼 2023. 3. 25. 17:43

 

요즘 cs 및 sql 공부를 하느라 파이썬 코드를 통 작성하지 못 했다.

 

이러다 파이썬을 잊어 먹겠다 싶은 마음에 작성해본 코드.

 

아래 책에 나오는 실전 프로젝트를 보고 주소록 프로젝트를 따라 만들었다.

 

[파이썬으로 배우는 알고리즘 트레이딩], 조대표 지음, 위키북스

 

참고로, 해당 책에서 저자 분이 코드 한줄 한줄 자세히 설명해주셔서 좋았다.

나같은 초보자들이 보기에 좋은 교재인 것 같다 :)

 

 

아래는 완성코드!

 

class Contact():
    def __init__(self, name, phone_number, e_mail, addr):
        self.name = name
        self.phone_number = phone_number
        self.e_mail = e_mail
        self.addr = addr
    def print_info(self):
        print('Name:', self.name)
        print('Phone Number:', self.phone_number)
        print('E-mail:', self.e_mail)
        print('Address:', self.addr)

def set_contact():
    name = input('Name: ')
    phone_number = input('Phone_number: ')
    e_mail = input('E-mail: ')
    addr = input('Address: ')
    contact = Contact(name, phone_number, e_mail, addr)
    return contact

def print_contact(contact_list):
    for contact in contact_list:
        contact.print_info()
        
def delete_contact(contact_list, name):
    for i, contact in enumerate(contact_list):
        if contact.name == name:
            del contact_list[i]

def store_contact(contact_list):
    f = open('contact_db.txt', 'wt')
    for contact in contact_list:
        f.write(contact.name + '\n')
        f.write(contact.phone_number + '\n')
        f.write(contact.e_mail + '\n')
        f.write(contact.addr + '\n')
    f.close()

def load_contact(contact_list):
    f = open('contact_db.txt', 'rt')
    lines = f.readlines()
    num = len(lines)/4
    num = int(num)

    for i in range(num):
        name = lines[4*i].rstrip('\n')
        phone = lines[4*i+1].rstrip('\n')
        email = lines[4*i+2].rstrip('\n')
        addr = lines[4*i+3].rstrip('\n')
        contact = Contact(name, phone, email, addr)
        contact_list.append(contact)
    f.close()

def print_menu():
    print('1. 연락처 입력')
    print('2. 연락처 출력')
    print('3. 연락처 삭제')
    print('4. 종료')
    menu = input('메뉴선택: ')
    return int(menu)

def run():
    contact_list = []
    load_contact(contact_list)
    while 1:
        menu = print_menu()
        if menu == 1:
            contact = set_contact()
            contact_list.append(contact)
        elif menu == 2:
            print_contact(contact_list)
        elif menu == 3:
            name = input('Name: ')
            delete_contact(contact_list, name)
        elif menu == 4:
            store_contact(contact_list)
            break

if __name__ == '__main__':
    run()

 

터미널에서 실행하면, 다음 화면처럼 나온다.

 

 

'Python' 카테고리의 다른 글

Random 모듈  (0) 2023.03.28
Matplotlib  (0) 2023.03.27
제너레이터(Generator)  (0) 2023.02.23
타입 힌트(Type Hint)  (0) 2023.02.23
Streamlit으로 간단한 웹페이지 만들기  (0) 2023.01.28