Jakub Škrabánek 1 month ago
parent
commit
c8f1cece46
  1. 59
      29_spravce_poznamek/spravce.py

59
29_spravce_poznamek/spravce.py

@ -0,0 +1,59 @@
# 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
Loading…
Cancel
Save