Wszystko razem
Część sekcji Logika i przepływ programu ścieżki Python w Coddy. Lekcja 23 z 78.
Wyzwanie
ŁatwyTeraz, gdy masz już gotowe wszystkie pojedyncze funkcje Książki kontaktów, czas połączyć je, aby stworzyć cały program!
Twoje zadanie:
- Połącz utworzone funkcje:
display_menu: Wyświetla użytkownikowi opcje menu.add_contact: Dodaje nowy kontakt do Książki kontaktów.view_contact: Wyświetla szczegóły dotyczące konkretnego kontaktu.edit_contact: Aktualizuje informacje o istniejącym kontakcie.delete_contact: Usuwa kontakt z Książki kontaktów.list_all_contacts: Wyświetla wszystkie kontakty w Książce kontaktów.
- Utwórz słownik o nazwie
contact_book, aby przechowywać kontakty. - Napisz pętlę, która:
- Wyświetla menu za pomocą
display_menu. - Pobiera od użytkownika wybór z menu.
- Wywołuje odpowiednią funkcję na podstawie wyboru użytkownika.
- Wyświetla
Invalid choice. Please try again., jeśli użytkownik wybierze opcję, która nie jest jedną z prawidłowych opcji menu. - Działa do momentu, gdy użytkownik wybierze opcję zakończenia programu.
- Wyświetla menu za pomocą
Oczekiwane działanie:
Po uruchomieniu programu powinien on:
- Wyświetlić menu opcji, spośród których użytkownik może wybrać.
- Umożliwić użytkownikowi korzystanie z Książki kontaktów przez wywoływanie odpowiednich funkcji.
- Wyświetlić Invalid choice. Please try again., gdy użytkownik wprowadzi nierozpoznaną opcję.
- Poprawnie zakończyć działanie, gdy użytkownik wybierze opcję "Exit".
Ten ostatni krok łączy całą zdobytą wiedzę w sprawnie działającą aplikację Książki kontaktów. Zobacz, jak Twoja ciężka praca składa się w całość! 🎉
Spróbuj swoich sił
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
Wszystkie lekcje w sekcji Logika i przepływ programu
1Odkrywanie zmiennych
StałeWielokrotne przypisania zmiennychZamiana zmiennychZmienne zastępczeZaokrąglanie liczbKonwersja na listę4Aplikacja książki kontaktów
Wyświetl menuDodaj kontakt7Zbiory — część 2
Działania matematyczne — część 1Działania matematyczne — część 2Powtórka — poszukiwanie skarbówPodzbiory i nadzbioryIterowanie po zbiorachPowtórka — śledzenie turnieju10Podstawowe składanie list
SkładniaTworzenie prostych listDodawanie warunkówUżywanie agregacji danychPowtórka – dom listPowtórka – elementy wolności13System zarządzania zapasami
Przegląd projektuDodawanie produktu2Słowniki — część 1
Czym jest słownik?Tworzenie słownikaDostęp do wartościModyfikowanie słownikówPowtórzenie — menedżer przepisów5Zaawansowane podejmowanie decyzji
Operator warunkowySprawdzanie przynależnościSprawdzanie tożsamościBłędy wcięćPowtórka — filtr wakacyjny8Menedżer rekordów uczniów
Przegląd projektuDodawanie ucznia11Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Wyzwanie podsumowujące — sortowanie z lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Podsumowanie — suma elementów zagnieżdżonej listy14Funkcje wyższego rzędu
Funkcja mapFunkcja filterPodsumowanie – walidator adresów e-mailPodsumowanie – procesor liczb3Słowniki, część 2
Metody słownikówZagnieżdżone słownikiSprawdzanie kluczyIterowanie po słownikachPowtórzenie — licznik częstotliwości9Zaawansowana agregacja danych
Używanie sumyZnajdowanie minimum i maksimumEfektywne sortowanie danychPowtórka – sortowanie słowników12Podstawowa obsługa błędów
Czym jest obsługa błędów?Blok try i exceptObsługa wielu wyjątkówPodsumowanie – błędy w koszyku zakupowymPoćwicz samodzielnie: Kompilator Python online