# 1. část funkce 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. Duležité oznáčí [!]""" 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 oznac_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 #return ukončuje def (funkci), proto můžeme napsat return false bez else def uloz_do_souboru(poznamky,nazev_souboru): """Uloží poznámky do textového souboru (formát: autor|text|True/False)""" with open(nazev_souboru,mode="w",encoding="utf-8") as f: for pozn in poznamky: # | = AltGR + W radek = f"{pozn['autor']}|{pozn['text']}|{pozn['dulezita']}\n" f.write(radek) print(f"Zloženo {len(poznamky)} poznámek do {nazev_souboru}") def nacti_ze_souboru(nazev_souboru): """Načte poznámky zer souboru a vráti je jako seznam (pole) slovníků.""" 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) print(f"načteno {len(poznamky)} poznámek") except FileNotFoundError: print("Soubor nenalezen, začíname s prázným seznamem.") return poznamky # 2. část hlavní (funkce) programu def hlavni_menu(): 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("\n---Vaše poznámky---") zobraz_poznamky(poznamky) elif volba == "3": zobraz_poznamky(poznamky) try: cislo = int(input("Číslo poznámky k označení:")) if oznac_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("Na shledanou") break else: print("špatná volba, zkuste to znovu.") # 3. spuštění hlavního programu if __name__ == "__main__": main()