Zadanie: Python funkcje + moduły

flynerd.pl 9 miesięcy temu

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.

Przypominam, iż na blogu znajdziecie również darmowy kurs online Python od podstaw.

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:

  1. Rozpocznij od stworzenia prostego menu dla użytkownika, które umożliwi dodawanie, wyświetlanie i oznaczanie zadań (te operacje będą funkcjami).
  2. Wykorzystaj pętlę while, aby umożliwić użytkownikowi wykonanie wielu operacji przed zamknięciem notatnika.
  3. 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ń.
  4. 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?

Utwórz strukturę dla zadań np. słownik Funkcja display_menu: Wyświetl opcje menu Funkcja add_task: Weź opis zadania od użytkownika Weź aktualną datę i czas Dodaj zadanie do słownika 'tasks' z datą i statusem do zrobienia Funkcja display_tasks: dla wszystkich zadania w 'tasks', wyświetl indeks, opis, datę i status Funkcja mark_task_done: Weź indeks zadania od użytkownika Zmień status zadania na 'wykonane' Funkcja save_tasks_to_file: Otwórz plik do zapisu dla wszystkich zadania w 'tasks', zapisz indeks, opis, datę i status do pliku Zamknij plik Główna pętla programu: Wyświetl menu Weź wybór od użytkownika jeżeli użytkownik wybrał 'dodaj zadanie', wywołaj funkcję add_task jeżeli użytkownik wybrał 'wyświetl zadania', wywołaj funkcję display_tasks jeżeli użytkownik wybrał 'oznacz zadanie jako wykonane', wywołaj funkcję mark_task_done jeżeli użytkownik wybrał 'zapisz zadania do pliku', wywołaj funkcję save_tasks_to_file jeżeli użytkownik wybrał 'wyjdź', zakończ pętlę

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)

Idź do oryginalnego materiału