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