Ten wpis powstaje w ramach wyzwania Summer Of Code jako podsumowanie 3 tygodnia wyzwania! W tym tygodniu, co udało nam się osiągnąć to przejście od zera do pisania własnych skryptów w Pythonie z wykorzystaniem fundamentalnych koncepcji programowania.
Zadanie łączące podstawy programowania w Pythonie takie jak:
- typy i zmienne
- instrukcje warunkowe
- pętle
- funkcje
- moduły
- zapis do pliku
…chociaż myślę, iż to zadanie również dla średniozaawansowanych w pythonie, które można dalej rozbudowywać wg. własnego poziomu (np. dodać obsługę wyjątków, OOP itd).
Czas na klasyk, czyli TODO listę w Pythonie na zakończenie tygodnia nauki
PROJEKT KOŃCOWY
Zadanie: Notatnik zadań
Twoim zadaniem jest stworzenie prostego notatnika zadań w Pythonie (to-do list), który będzie umożliwiał użytkownikowi dodawanie nowych zadań, oznaczanie ich jako wykonane i zapisywanie ich do pliku.
Wymagane funkcje notatnika zadań:
- Dodawanie nowego zadania: Użytkownik może wprowadzić opis nowego zadania, a program powinien zapisać je w liście zadań.
- Wyświetlanie listy zadań: Użytkownik może wyświetlić listę wszystkich zadań w terminalu.
- Oznaczanie zadania jako wykonane: Użytkownik może oznaczyć zadanie jako wykonane, co wpłynie na jego status w liście zadań (np. zmienna typu bool – true/false).
- Zapisywanie do pliku: Po zakończeniu pracy z notatnikiem, lista zadań powinna zostać zapisana do pliku tekstowego (albo csv), tak, aby można było ją ponownie odczytać przy kolejnym uruchomieniu programu.
- Odczyt z pliku: (opcjonalnie) Po ponownym uruchomieniu możliwość odczytania listy zadań z pliku tekstowego.
Biblioteki, które można wykorzystać:
- datetime: Do dodawania daty i czasu wykonania zadania, albo „do kiedy” (wg. uznania)
- (opcjonalnie) os: Do sprawdznia czy dany plik istnieje zanim spróbujemy go otworzyć
Wskazówki:
- Rozpocznij od stworzenia prostego menu dla użytkownika, które umożliwi dodawanie, wyświetlanie i oznaczanie zadań (te operacje będą funkcjami).
- Wykorzystaj pętlę while, aby umożliwić użytkownikowi wykonanie wielu operacji przed zamknięciem notatnika.
- Zadbaj o strukturę danych np. przechowuj listę zadań w formie słownika, gdzie kluczami będą numery indeksów, a wartościami będą opisy zadań.
- Po zakończeniu pracy z notatnikiem, zapisz listę zadań do pliku tekstowego dzięki biblioteki os.
Pseudokod
Jak może wyglądać kolejność instrukcji w tym zadaniu?
Pseudokod w tym wypadku to koncepcja kodu, która może pomóc w pracy nad projektem. Pamiętaj to tylko sugestia, istnieje więcej niz jedno dobre rozwiązanie (np. brakuje jeszcze odczytu z pliku)