전체 통합
Coddy Python 여정의 Logic & Flow 섹션에 포함된 레슨 — 78개 중 23번째.
챌린지
쉬움이제 연락처 관리 프로그램(Contact Book)을 위한 모든 개별 함수를 만들었으므로, 이들을 하나로 합쳐 전체 프로그램을 완성할 차례입니다!
수행 과제:
- 작성한 함수들을 결합하세요:
display_menu: 사용자에게 메뉴 옵션을 표시합니다.add_contact: 연락처 관리 프로그램에 새 연락처를 추가합니다.view_contact: 특정 연락처의 상세 정보를 표시합니다.edit_contact: 기존 연락처의 정보를 업데이트합니다.delete_contact: 연락처 관리 프로그램에서 연락처를 삭제합니다.list_all_contacts: 연락처 관리 프로그램의 모든 연락처를 표시합니다.
- 연락처를 저장할
contact_book이라는 딕셔너리를 생성합니다. - 다음과 같은 루프를 작성하세요:
display_menu를 사용하여 메뉴를 표시합니다.- 메뉴 선택을 위한 사용자 입력을 받습니다.
- 사용자의 선택에 따라 적절한 함수를 호출합니다.
- 사용자가 유효한 메뉴 옵션이 아닌 값을 입력하면
"Invalid choice. Please try again."을 출력합니다. - 사용자가 프로그램 종료 옵션을 선택할 때까지 계속됩니다.
예상 동작:
프로그램을 실행하면 다음과 같이 동작해야 합니다:
- 사용자가 선택할 수 있는 메뉴 옵션을 보여줍니다.
- 사용자가 적절한 함수를 호출하여 연락처 관리 프로그램과 상호작용할 수 있도록 합니다.
- 사용자가 인식되지 않는 옵션을 입력하면 "Invalid choice. Please try again."을 출력합니다.
- 사용자가 "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