Menu
CoddyTech

모두 함께하기

Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 23번째.

challenge icon

챌린지

쉬움

이제 주소록의 개별 함수를 모두 만들었으니, 함수를 하나로 모아 완성된 프로그램을 만들 차례입니다!


과제:

  1. 만든 함수들을 하나로 합치세요:
    • display_menu: 사용자에게 메뉴 옵션을 표시합니다.
    • add_contact: 주소록에 새 연락처를 추가합니다.
    • view_contact: 특정 연락처의 세부 정보를 표시합니다.
    • edit_contact: 기존 연락처 정보를 업데이트합니다.
    • delete_contact: 주소록에서 연락처를 삭제합니다.
    • list_all_contacts: 주소록의 모든 연락처를 표시합니다.
  2. 연락처를 저장할 contact_book이라는 딕셔너리를 만드세요.
  3. 다음 작업을 수행하는 루프를 작성하세요:
    • display_menu를 사용해 메뉴를 표시합니다.
    • 메뉴 선택에 대한 사용자 입력을 받습니다.
    • 사용자의 선택에 따라 적절한 함수를 호출합니다.
    • 사용자가 유효한 메뉴 옵션에 없는 선택을 입력하면 Invalid choice. Please try again.을 출력합니다.
    • 사용자가 프로그램 종료 옵션을 선택할 때까지 계속합니다.

예상 동작:

프로그램을 실행하면 다음과 같이 동작해야 합니다:

  1. 사용자가 선택할 수 있는 옵션 메뉴를 표시합니다.
  2. 적절한 함수를 호출하여 사용자가 주소록과 상호작용할 수 있게 합니다.
  3. 사용자가 알 수 없는 옵션을 입력하면 Invalid choice. Please try again.을 출력합니다.
  4. 사용자가 "Exit" 옵션을 선택하면 프로그램을 정상적으로 종료합니다.

이 마지막 단계에서는 지금까지 배운 모든 내용을 결합해 완전히 작동하는 주소록 애플리케이션을 만듭니다. 지금까지의 노력이 하나로 완성되는 모습을 즐겨 보세요! 🎉

직접 해보기

def display_menu():
    print("Contact Book Menu:")
    print("1. Add Contact")
    print("2. View Contact")
    print("3. Edit Contact")
    print("4. Delete Contact")
    print("5. List All Contacts")
    print("6. Exit")

def add_contact(contact_book):
    name = input()
    if name in contact_book:
        print("Contact already exists!")
        return
    phone = input()
    email = input()
    address = input()
    contact_book[name] = {"phone": phone, "email": email, "address": address}
    print("Contact added successfully!")

def view_contact(contact_book):
    name = input()
    if name in contact_book:
        contact = contact_book[name]
        print(f"Name: {name}")
        print(f"Phone: {contact['phone']}")
        print(f"Email: {contact['email']}")
        print(f"Address: {contact['address']}")
    else:
        print("Contact not found!")

def edit_contact(contact_book):
    name = input()
    if name in contact_book:
        phone = input()
        email = input()
        address = input()

        if phone == '':
            phone = contact_book[name]['phone']
        if email == '':
            email = contact_book[name]['email']
        if address == '':
            address = contact_book[name]['address']

        contact_book[name] = {"phone": phone, "email": email, "address": address}
        print("Contact updated successfully!")
    else:
        print("Contact not found!")

def delete_contact(contact_book):
    name = input()
    if name in contact_book:
        del contact_book[name]
        print("Contact deleted successfully!")
    else:
        print("Contact not found!")

def list_all_contacts(contact_book):
    if not contact_book:
        print("No contacts available.")
    else:
        for name, details in contact_book.items():
            print(f"Name: {name}")
            print(f"Phone: {details['phone']}")
            print(f"Email: {details['email']}")
            print(f"Address: {details['address']}")
            print()  # Blank line between contacts for readability

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러