Zadanie domowe zaległe - książka kontaktowa
Tyle na razie udało mi się uzupełnić z naszej książki kontaktowej. Od jutra będę działać z nią dalej 😄
import json
import os
if os.path.exists("kontakty.json"):
with open("kontakty.json", "r", encoding = "utf8") as plik:
kontakty = json.load(plik)
else:
kontakty = {}
while True:
menu = """
Wybierz operację do wykonania:
1. dopisanie pozycji do ksiażki
2. aktualizacja pozycji książki
3. usunięcie pozycji
4. wydruk imion z książki
5. wydruk całej książki
6. koniec
"""
print(menu)
try:
kod_operacji = int(input("Wybierz kod operacji: "))
except ValueError:
print("Musisz wpisać liczbę od 1 do 6!")
continue
if kod_operacji == 1:
print("Wybrano dopisanie pozycji do książki")
nowy_kontakt = input("Wpisz nazwę nowej pozycji: ")
if nowy_kontakt not in kontakty:
nowe_dane = input("Wpisz dane kontaktowe: ")
kontakty[nowy_kontakt] = nowe_dane
print("Dodano nowy kontakt.")
else:
print("Kontakt już istnieje")
elif kod_operacji == 2:
print("Wybrano aktualizację pozycji książki")
nazwa = input("Wpisz nazwę do aktualizacji: ")
if nazwa in kontakty:
nowe_dane = input("Wpisz nowe dane: ")
kontakty[nazwa] = nowe_dane
print("Kontakt zaktualizowany.")
else:
print("Nie ma takiego kontaktu.")
elif kod_operacji == 3:
print("Wybrano usunięcie pozycji z książki")
nazwa = input("Podaj nazwę/imie kontaktu, który chcesz usunąć: ")
if nazwa in kontakty:
kontakty.pop(nazwa)
print("Kontakt został usunięty.")
else:
print("Nie ma takiego kontaktu.")
elif kod_operacji == 4:
print("Wybrano wydruk imion z książki")
for imie in kontakty:
print(imie, end=", ")
print()
liczba_kontaktow = len(kontakty)
if liczba_kontaktow == 1:
koncowka = "kontakt"
elif 2 <= liczba_kontaktow % 10 <= 4 and not (12 <= liczba_kontaktow % 100 <= 14):
koncowka = "kontakty"
else:
koncowka = "kontaktów"
print(f"Książka zawiera {liczba_kontaktow} {koncowka}.")
elif kod_operacji == 5:
print("Wybrano wydruk całej książki:")
for imie, dane in kontakty.items():
print(f"{imie}: {dane}")
elif kod_operacji == 6:
print("Wybrano zamknięcie programu.")
while True:
pytanie = input("Czy chcesz zapisać zmiany? Tak - T, Nie - N: ").strip().upper()
if pytanie in ("T", "N"):
break
print("Nieprawidłowa odpowiedź. Wpisz T albo N.")
if pytanie == "T":
with open("kontakty.json", "w", encoding="utf-8") as plik:
json.dump(kontakty, plik, ensure_ascii=False, sort_keys=True, indent=4)
print("Zmiany zostały zapisane.")
else:
print("Zmiany nie zostały zapisane.")
break
else:
print("Nie ma takiej opcji. Wybierz od 1 do 6.")