Budowanie projektu koncowego - implementacja glownych funkcji
ð Podstawa programowa: IV.1+II.2Dzis skupiamy sie na implementacji projektu. Wiekszosc lekcji to praca wlasna, ale najpierw kilka waznych porad.
# PROBLEM: Program sie zawiesza
# ROZWIAZANIE: Dodaj print() do debugowania
def moja_funkcja(dane):
print(f"DEBUG: dane = {dane}") # tymczasowe
# ... reszta kodu
print(f"DEBUG: wynik = {wynik}") # tymczasowe
return wynik
# PROBLEM: Plik nie znaleziony
# ROZWIAZANIE: Sprawdz sciezke i uzyj try/except
import os
sciezka = "dane.txt"
if os.path.exists(sciezka):
with open(sciezka, "r", encoding="utf-8") as f:
dane = f.read()
else:
print(f"Plik {sciezka} nie istnieje!")
# PROBLEM: Blad kodowania znakow
# ROZWIAZANIE: Zawsze uzywaj encoding="utf-8"
with open("plik.txt", "r", encoding="utf-8") as f:
tekst = f.read()
# PROBLEM: Program nie konczy dzialania
# ROZWIAZANIE: Sprawdz warunki petli
while warunek: # czy warunek kiedys bedzie False?
# ... operacje zmieniajace warunek
pass
# PROBLEM: Funkcja zwraca None
# ROZWIAZANIE: Sprawdz, czy jest return
def oblicz(a, b):
wynik = a + b
return wynik # Nie zapomnij o return!
# Jesli uzywasz Git:
git add .
git commit -m "Dodano funkcje wczytywania danych"
# Jesli nie uzywasz Git - reczne kopie zapasowe:
# Kopiuj plik co 15 minut z nowa nazwa:
# projekt_v1.py -> projekt_v2.py -> projekt_v3.py
# NIGDY nie pracuj bez kopii zapasowej!
Na poczatku lekcji wypelnij krotki raport statusu: a) Co udalo sie zrobic do tej pory? b) Co jeszcze zostalo? c) Jakie problemy napotkales? d) Czy harmonogram jest realizowany?
Skup sie na zaimplementowaniu najprostszej dziajacej wersji projektu. Program powinien realizowac swoja glowna funkcje od poczatku do konca (wczytanie danych → przetwarzanie → wyswietlenie wyniku).
Po ukonczeniu MVP dodaj co najmniej 2 dodatkowe funkcje z listy wymagan. Przetestuj kazda funkcje oddzielnie i sprawdz, czy nie zepsola istniejacego kodu.
Dodaj do projektu trwalosc danych - zapis wynikow/ustawien/postepow do pliku (JSON, CSV lub TXT). Program powinien wczytywac dane z pliku przy starcie i zapisywac przy zamknieciu. Dodaj obsluge sytuacji, gdy plik nie istnieje.