2 changed files with 119 additions and 0 deletions
@ -0,0 +1,6 @@ |
|||||
|
test|test|True |
||||
|
Jára Cimrman|Jdu na sever, Jdu na sever, Jdu na sever, Jdu na Jih|False |
||||
|
Aristoteles|Vím, že nic nevím|False |
||||
|
Ceasar|Veni, Vidi, Vici|False |
||||
|
Lorem|Ipsum|True |
||||
|
|
||||
@ -0,0 +1,113 @@ |
|||||
|
# 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() |
||||
Loading…
Reference in new issue