Výuka IT

Procvičování: Kontakty

Program bude podporovat následující funkce:

Program poběží v nekonečném cyklu a umožní uživateli provést operace podle vstupu: "pridat", "vypis", "hledat", "smazat".

Řešení

Zobrazit řešení

      def pridat_kontakt():
    jmeno = input("Zadejte jméno: ")
    telefon = input("Zadejte telefonní číslo: ")
    email = input("Zadejte e-mail: ")
    
    with open("kontakty.txt", "a", encoding="utf-8") as soubor:
        soubor.write(f"{jmeno};{telefon};{email}\n")
    print("Kontakt byl úspěšně přidán.\n")

def vypis_kontakty():
    if not os.path.exists("kontakty.txt"):
        print("Žádné kontakty zatím nejsou uloženy.\n")
        return
    
    with open("kontakty.txt", "r", encoding="utf-8") as soubor:
        kontakty = soubor.readlines()
    
    if not kontakty:
        print("Žádné kontakty zatím nejsou uloženy.\n")
        return
    
    print("Seznam kontaktů:")
    for kontakt in kontakty:
        print(kontakt.strip())
    print()

def hledat_kontakt():
    jmeno_hledane = input("Zadejte jméno kontaktu k vyhledání: ")
    
    if not os.path.exists("kontakty.txt"):
        print("Soubor s kontakty neexistuje.\n")
        return
    
    with open("kontakty.txt", "r", encoding="utf-8") as soubor:
        kontakty = soubor.readlines()
    
    nalezeno = False
    for kontakt in kontakty:
        jmeno, telefon, email = kontakt.strip().split(";")
        if jmeno.lower() == jmeno_hledane.lower():
            print(f"Nalezen kontakt: {jmeno}, {telefon}, {email}\n")
            nalezeno = True
            break
    
    if not nalezeno:
        print("Kontakt nebyl nalezen.\n")

def smazat_kontakt():
    jmeno_smazat = input("Zadejte jméno kontaktu k odstranění: ")
    
    if not os.path.exists("kontakty.txt"):
        print("Soubor s kontakty neexistuje.\n")
        return
    
    with open("kontakty.txt", "r", encoding="utf-8") as soubor:
        kontakty = soubor.readlines()
    
    nove_kontakty = [kontakt for kontakt in kontakty if not kontakt.lower().startswith(jmeno_smazat.lower() + ";")]
    
    if len(nove_kontakty) == len(kontakty):
        print("Kontakt nebyl nalezen.\n")
        return
    
    with open("kontakty.txt", "w", encoding="utf-8") as soubor:
        soubor.writelines(nove_kontakty)
    
    print("Kontakt byl úspěšně odstraněn.\n")

def hlavni():
    while True:
        prikaz = input("Zadejte akci (pridat, vypis, hledat, smazat, konec): ").strip().lower()
        
        if prikaz == "pridat":
            pridat_kontakt()
        elif prikaz == "vypis":
            vypis_kontakty()
        elif prikaz == "hledat":
            hledat_kontakt()
        elif prikaz == "smazat":
            smazat_kontakt()
        elif prikaz == "konec":
            print("Ukončuji program.")
            break
        else:
            print("Neznámý příkaz, zkuste to znovu.\n")