# 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_duleziou(poznamky,cislo): """označí poznámku jako důležitou. Vrací True/False podle úspěchu""" if 1<=cislo<=len(poznamky): poznamky[cislo-1]["dulezite"] = 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 # 3. spuštění hlavního programu