全体をまとめる
CoddyのPythonジャーニー「Logic & Flow」セクションの一部 — レッスン 23/78。
チャレンジ
簡単連絡先帳のすべての個別機能を構築しました。いよいよ、これらを組み合わせて完全なプログラムを作成する時です!
あなたのタスク:
- 作成した機能を組み合わせます:
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