You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

112 lines
3.6 KiB

# 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()