# 1. čast funkce programu def pridej_poznamku(poznamky, autor, text): """Přidá novou poznámku (slovník) do seznamu""" nova = { "autor":autor, "text":text, "dulezita":False } poznamky.append(nova) def zobraz_poznamky(poznamky): """Vypíše všechny poznámky. Důležité poznámky vypíše [!]""" if len(poznamky) == 0: print("Žádné poznámky") return for i, pozn in enumerate(poznamky): znacka = " [!]" if pozn["dulezita"] else "" print(f'[{i+1}] {pozn["autor"]}: {(pozn["text"])}{znacka}') def oznacit_dulezitou(poznamky,cislo): """Označí poznámku jako důležitou. Vrací True/False podle úspěchu""" if 1 <= cislo <= len(poznamky): poznamky[cislo-1]["dulezita"] = True return True return False def uloz_do_souboru(poznamky,nazev_souboru): """Uloží poznámky do textového souboru (formát: autor|text|True/False)""" # AltGR + W = |, AltGR + Q = \ with open(nazev_souboru,mode="w",encoding="utf-8") as f: for pozn in poznamky: radek = f"{pozn['autor']}|{pozn['text']}|{pozn['dulezita']}\n" f.write(radek) print(f"Uloženo {len(poznamky)} poznámek do {nazev_souboru}") def nacti_ze_souboru(nazev_souboru): """Načte poiznámky ze souboru a vrátí je jako seznam slovníků(dict array)""" poznamky = [] try: with open(nazev_souboru,mode="r",encoding="utf-8") as f: for radek in f: casti = radek.strip().split("|") if len(casti) == 3: poznamka = { "autor":casti[0], "text":casti[1], "dulezita":casti[2] == "True" } poznamky.append(poznamka) except FileNotFoundError: print("Soubor nenalezen, začínáme s prázným seznamem") except Exception as e: print(f"Chyba: {e}") return poznamky # 2. hlavní program def hlavni_menu(): """Zobrazí menu a vrátí volbu uživatele""" print("\n----- SPRÁVCE POZNÁMEK -----") print("1. přidat poznámku") print("2. Zobrazit poznámky") print("3. Označit důležitou") print("4. Uložit do souboru") print("5. Načíst ze souboru") print("6. Konec") print("=========================") return input("Vaše Volba: ") def main(): """Hlavní funkce programu.""" nazev_souboru = "poznamky.txt" poznamky = [] print("Vítejte ve Správci poznámek!") while True: volba = hlavni_menu() if volba == "1": autor = input("Autor: ") text = input("Text poznámky: ") pridej_poznamku(poznamky,autor,text) print("Poznámka přidána!") elif volba == "2": print(f"--Vaše poznámky--") zobraz_poznamky(poznamky) elif volba == "3": zobraz_poznamky(poznamky) try: cislo = int(input("Číslo poznámky k označení: ")) if oznacit_dulezitou(poznamky, cislo): print("Označeno jako důležité") else: print("Neplatné číslo") except ValueError: print("Zadejte prosím číslo") elif volba == "4": uloz_do_souboru(poznamky,nazev_souboru) elif volba == "5": poznamky = nacti_ze_souboru(nazev_souboru) elif volba == "6": print("děkujeme za využiti programu") break else: print("Neplatná volba, zkuste to znovu") # 3. spouštěč if __name__ == "__main__": main()