W opracowaniu będziemy posługiwali się językiem Python w wersji 3.
Wersja 2 oprogramowania została zdeprecjonowana i jest przestarzała.
Python jest zorientowanym obiektowo językiem programowania, który został stworzony na początku lat 90tych w Holandii. Autorem języka jest Guido van Rossum, który nazwał ten język na cześć swojego ulubionego serialu „Latający cyrk Monty Pythona” – Python.
Python jest językiem słabo typowanym, co oznacza, że typy generowane są dynamicznie, tak jak w PHP, a w przeciwieństwie do Javy. Do zarządzania pamięcią stosowany jest garbage collection.
Zobaczmy jak wygląda Python w rankingu Tiobe:
Dlaczego warto uczyć się Pythona?
1. Czytelność i prostota składni
Python został zaprojektowany z myślą o czytelności. Jego składnia przypomina naturalny język angielski i wykorzystuje wcięcia zamiast nawiasów klamrowych, co wymusza czytelne formatowanie kodu.
Filozofia Pythona (The Zen of Python):
- Beautiful is better than ugly
- Explicit is better than implicit
- Simple is better than complex
- Readability counts
- …
Możesz zobaczyć pełną listę zasad wpisując w Pythonie komendę import this
2. Wszechstronność zastosowań
Python jest wykorzystywany w niemal każdej dziedzinie informatyki:
Web Development:
- Django – pełnoprawny framework webowy (Instagram, Pinterest)
- Flask – mikroframework (Netflix, Reddit)
- FastAPI – nowoczesne API (Uber, Microsoft)
Data Science i Machine Learning:
- Pandas – analiza danych
- NumPy – obliczenia naukowe
- Scikit-learn – uczenie maszynowe
- TensorFlow, PyTorch – sztuczna inteligencja
Automatyzacja i DevOps:
- Automatyzacja testów (Selenium, pytest)
- Zarządzanie infrastrukturą (Ansible)
- Przetwarzanie danych
- Web scraping
Inne zastosowania:
- Gry komputerowe (Pygame)
- Aplikacje desktopowe (Tkinter, PyQt)
- Embedded systems (MicroPython, CircuitPython)
- Cybersecurity i penetration testing
3. Ogromna społeczność i ekosystem
PyPI (Python Package Index) zawiera ponad 450,000 pakietów gotowych do użycia. To największe repozytorium bibliotek programistycznych na świecie. Dla porównania, npm (Node.js) ma około 2 miliony pakietów, ale wiele z nich to duplikaty lub małe projekty.
Społeczność Pythona jest znana z przyjazności dla początkujących (friendly to beginners). Istnieje wiele miejsc, gdzie możesz uzyskać pomoc:
- Stack Overflow – tysiące odpowiedzi na pytania
- Reddit (r/learnpython) – społeczność pomocnych programistów
- Discord serwery dedykowane Pythonowi
- Lokalne spotkania Python User Groups (PUG)
4. Wysoka pozycja na rynku pracy
Według różnych rankingów i badań:
- TIOBE Index 2024 – Python jest na 1. miejscu
- Stack Overflow Survey 2023 – Python w top 3 najpopularniejszych języków
- GitHub Octoverse – Python na 2. miejscu najczęściej używanych języków
Średnie zarobki programistów Python w Polsce (2024):
- Junior: 6,000 – 10,000 PLN
- Mid: 12,000 – 18,000 PLN
- Senior: 18,000 – 30,000+ PLN
W branży Data Science i AI zarobki mogą być jeszcze wyższe.
5. Łatwy start, ale potężne możliwości
Python jest często pierwszym językiem programowania w szkołach i na uniwersytetach. Dlaczego?
- Nie wymaga deklarowania typów zmiennych
- Automatyczne zarządzanie pamięcią
- Prostsza składnia niż C++, Java czy JavaScript
- Natychmiastowe widzenie rezultatów (język interpretowany)
- Mnóstwo materiałów edukacyjnych dla początkujących
Mimo prostoty, Python jest używany w najpoważniejszych projektach:
- NASA używa Pythona w eksploracji kosmosu
- Google ma Pythona jako jeden z trzech oficjalnych języków
- Dropbox został napisany głównie w Pythonie
- Reddit, Instagram, Spotify – wszystkie używają Pythona
Charakterystyka języka Python
Język interpretowany
Python to język interpretowany, co oznacza, że kod jest wykonywany linia po linii przez interpreter, bez konieczności kompilacji do kodu maszynowego.
| Zalety: | Wady: |
| Szybsze prototypowanie | Wolniejsze wykonanie niż języki kompilowane (C, C++, Rust) |
| Łatwiejsze debugowanie | Wymaga interpretera na docelowym systemie |
| Przenośność między systemami operacyjnymi | |
| Możliwość interaktywnego testowania kodu |
Dynamicznie typowany
W Pythonie nie musisz deklarować typów zmiennych. Interpreter sam rozpoznaje typ na podstawie przypisanej wartości.
W Javie (statyczne typowanie):
int x = 5;
String name = "Jan";
W Pythonie (dynamiczne typowanie):
x = 5
name = "Jan"
Python sam wie, że x to liczba całkowita, a name to tekst.
Wysokopoziomowy
Python abstrahuje wiele niskopoziomowych szczegółów:
- Nie musisz zarządzać pamięcią (garbage collector robi to za Ciebie)
- Nie musisz używać wskaźników
- Wbudowane struktury danych (listy, słowniki) są gotowe do użycia
- Operacje na plikach i sieciach są proste i intuicyjne
To pozwala skupić się na rozwiązaniu problemu, nie na technicznych detalach implementacji.
Obiektowy i proceduralny
Python wspiera wiele paradygmatów programowania:
- Programowanie proceduralne – funkcje i proste skrypty
- Programowanie obiektowe – klasy i obiekty
- Programowanie funkcyjne – funkcje pierwszej klasy, lambda
Możesz zacząć od prostych skryptów i stopniowo przechodzić do bardziej zaawansowanych konceptów.
Wieloplatformowy
Ten sam kod Pythona działa bez zmian na:
- Windows
- macOS
- Linux
- Raspberry Pi
- Wiele innych systemów Unix-like
Nie musisz kompilować kodu osobno dla każdego systemu operacyjnego.
Instalacja
Co zostanie zainstalowane:
- Interpreter Pythona (główny program wykonujący kod)
- Biblioteka standardowa (ponad 200 modułów wbudowanych)
- IDLE (prosty edytor i środowisko deweloperskie)
- pip (menedżer pakietów)
- Dokumentacja (opcjonalnie)
Aby pobrać najnowszą wersję języka wchodzimy na stronę https://www.python.org/downloads/
Na stronie automatycznie zostanie wykryta Twoja wersja Windows. Kliknij żółty przycisk „Download Python ….”.

Uruchom pobrany plik. Pojawi się okno instalatora. Pamiętaj zaznaczyć dodanie do PATH podczas instalacji!
☐ Add Python 3.12 to PATH
Zaznacz to pole! Jest to absolutnie kluczowe. Bez tego Python nie będzie dostępny z wiersza poleceń. (Jeżeli nie zaznaczyłeś musisz dodać ścieżkę ręcznie w zmiennych środowiskowych Windowsa)
Co to jest PATH? PATH to zmienna systemowa określająca, gdzie Windows szuka programów. Dodanie Pythona do PATH pozwala uruchamiać Python z dowolnego miejsca w systemie.
Sprawdź instalację: w terminalu lub w wierszu poleceń wpisz:
python --version
Powinieneś zobaczyć:
Python 3.12.0 #lub inną wersję
Jeśli widzisz numer wersji – gratulacje! Python jest zainstalowany poprawnie.
Sprawdzenie pip (pip to menedżer pakietów – będziesz go używać do instalowania dodatkowych bibliotek.)
W tym samym oknie wiersza poleceń wpisz:
pip --version
Powinieneś zobaczyć coś podobnego do:
pip 23.2.1 from C:\Users\...\Python312\site-packages\pip (python 3.12)
Edytory i środowiska deweloperskie (IDE)
Po zainstalowaniu Pythona potrzebujesz edytora kodu. Polecam Visual Studio Code. Doinstaluj wtyczki dla Python.
Do wyboru masz jeszcze IDE specjalnie dla Pythona, stworzone przez JetBrains – PyCharm.
Masz też do dyspozycji IDLE – prosty edytor instalowany razem z Pythonem (Windows: Menu Start > Python 3.12 > IDLE).
Porównanie edytorów
| Edytor | Dla kogo | Trudność | Funkcje | Rozmiar |
|---|---|---|---|---|
| VSCode | Wszyscy | Łatwy | Bardzo dużo | Średni |
| PyCharm | Zawodowcy | Średni | Najwięcej | Duży |
| Thonny | Początkujący | Najłatwiejszy | Podstawowe | Mały |
| Sublime Text | Minimalności | Średni | Dużo | Mały |
| IDLE | Początkujący | Najłatwiejszy | Minimalne | Mały |
| Jupyter | Data Science | Łatwy | Specjalistyczne | Średni |
pip – Menedżer pakietów
pip (Pip Installs Packages) to standardowe narzędzie do instalowania bibliotek Pythona. Jest instalowane automatycznie razem z Pythonem.
Czym są pakiety?
Pakiety (packages) to gotowe biblioteki kodu napisane przez innych programistów. Zamiast pisać wszystko od zera, możesz użyć tysięcy gotowych rozwiązań.
Przykłady popularnych pakietów:
- requests – wysyłanie żądań HTTP (40+ milionów pobrań miesięcznie)
- pandas – analiza danych
- numpy – obliczenia naukowe
- django – framework webowy
- flask – mikroframework webowy
- pytest – testowanie kodu
- pillow – przetwarzanie obrazów
- beautifulsoup4 – web scraping
PyPI – Python Package Index
PyPI (https://pypi.org/) to repozytorium pakietów Pythona. Zawiera ponad 450,000 projektów.
Każdy może opublikować tam swoją bibliotekę. Gdy używasz pip, pobiera on pakiety właśnie z PyPI.
Podstawowe komendy pip
#Sprawdzenie wersji pip:
pip --version
#lub
pip3 --version
#Instalacja pakietu:
pip install nazwa_pakietu
#Przykład - instalacja biblioteki requests:
pip install requests
#Instalacja konkretnej wersji:
pip install nazwa_pakietu==1.2.3
#przykład
pip install django==4.2.0
#Aktualizacja pakietu:
pip install --upgrade nazwa_pakietu
#przykład
pip install --upgrade requests
#Odinstalowanie pakietu:
pip uninstall nazwa_pakietu
#przykład
pip uninstall requests
#Lista zainstalowanych pakietów:
pip list
#Zobaczysz wszystkie zainstalowane pakiety z ich wersjami:
#Package Version
#------------------ --------
#pip 23.2.1
#setuptools 68.0.0
#requests 2.31.0
#Informacje o pakiecie:
pip show nazwa_pakietu
#przykład
pip show requests
"""Zobaczysz szczegóły:
Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
License: Apache 2.0
Location: ...
Requires: charset-normalizer, idna, urllib3, certifi"""
Środowiska wirtualne (Virtual Environments)
Środowiska wirtualne to jeden z najważniejszych konceptów w Pythonie. Zrozumienie ich jest kluczowe dla profesjonalnej pracy.
Problem bez środowisk wirtualnych
Wyobraź sobie sytuację:
- Pracujesz nad projektem A, który wymaga Django 3.2
- Zaczynasz nowy projekt B, który wymaga Django 4.2
- Instalujesz Django 4.2
- Projekt A przestaje działać, bo jego kod nie jest kompatybilny z Django 4.2
Inne problemy:
- Jeden projekt wymaga requests 2.25, inny requests 2.31
- Chcesz przetestować nową wersję biblioteki, ale nie chcesz zepsuć działających projektów
- Przesyłasz projekt komuś, ale ma zainstalowane inne wersje bibliotek
Rozwiązanie: izolowane środowiska
Środowisko wirtualne to izolowana instalacja Pythona dla konkretnego projektu. Każdy projekt ma:
- Własną kopię Pythona
- Własne zainstalowane pakiety
- Niezależność od innych projektów
Analogia: To jak mieć osobne szafki na narzędzia dla różnych projektów. Każda szafka ma narzędzia potrzebne tylko dla jednego projektu.
venv – tworzenie środowiska wirtualnego
venv to wbudowany moduł Pythona do tworzenia środowisk wirtualnych. Jest dostępny od Python 3.3.
Windows – krok po kroku
1. Otwórz wiersz poleceń w folderze projektu
Załóżmy, że chcesz utworzyć projekt w folderze C:\projekty\moj_projekt
cd C:\projekty\moj_projekt
2. Utwórz środowisko wirtualne
python -m venv venv
Rozbijmy tę komendę:
python -m venv– uruchom moduł venvvenv– nazwa folderu dla środowiska (może być dowolna, ale konwencja to „venv”)
Ta komenda stworzy folder venv z całym środowiskiem wirtualnym.
3. Aktywuj środowisko
venv\Scripts\activate
Po aktywacji zobaczysz (venv) przed ścieżką:
(venv) C:\projekty\moj_projekt>
To oznacza, że środowisko jest aktywne.
4. Zainstaluj pakiety w środowisku
Teraz wszystko co zainstalujesz, zostanie zainstalowane tylko w tym środowisku:
pip install flask
Flask zostanie zainstalowany tylko w tym projekcie, nie globalnie.
5. Pracuj nad projektem
Możesz teraz pisać kod, uruchamiać skrypty. Wszystko będzie używać Pythona i pakietów z tego środowiska.
6. Dezaktywuj środowisko
Gdy skończysz pracę:
deactivate
(venv) zniknie ze ścieżki. Wrócisz do globalnego Pythona.
Praktyczny przykład – projekt Flask
Stwórzmy kompletny projekt Flask od zera, krok po kroku.
1. Utwórz folder projektu
mkdir moja_aplikacja_flask
cd moja_aplikacja_flask
2. Utwórz środowisko wirtualne
python -m venv venv
3. Aktywuj środowisko
Windows: venv\Scripts\activate Linux/Mac: source venv/bin/activate
4. Zainstaluj Flask
pip install flask
5. Sprawdź zainstalowane pakiety
pip list
Zobaczysz:
Package Version
------------ -------
blinker 1.6.2
click 8.1.7
Flask 3.0.0
itsdangerous 2.1.2
Jinja2 3.1.2
...
Flask automatycznie zainstalował swoje zależności.
6. Zapisz zależności
pip freeze > requirements.txt
7. Utwórz plik app.py
Teraz możesz utworzyć plik Pythona i zacząć programować.
8. Po zakończeniu pracy
deactivate
Nazwa środowiska – konwencje
Najpopularniejsze nazwy dla środowisk wirtualnych:
venv– najczęstsza konwencjaenv– krótsza alternatywa.venv– ukryty folder (zaczyna się od kropki)virtualenv– starsza konwencja
Zalecenie: Używaj venv – jest to standard w społeczności Pythona.
Co zawiera folder venv?
Po utworzeniu venv, w folderze znajdziesz:
venv/
├── Include/
├── Lib/
│ └── site-packages/ # Tu są instalowane pakiety
├── Scripts/
│ ├── activate # Skrypt aktywacyjny
│ ├── activate.bat
│ ├── python.exe # Kopia Pythona
│ └── pip.exe # pip dla tego środowiska
└── pyvenv.cfg # Konfiguracja
.gitignore i środowiska wirtualne
Bardzo ważne: Nigdy nie commituj folderu venv do Git!
Folder venv zawiera:
- Tysiące plików
- Binarki specyficzne dla systemu operacyjnego
- Setki megabajtów danych
Zamiast tego:
- Commituj
requirements.txt - Dodaj
venv/do.gitignore - Inni developerzy stworzą własne środowisko z
requirements.txt
Przykładowy .gitignore dla Pythona:
# Virtual Environment
venv/
env/
ENV/
.venv
# Python cache
__pycache__/
*.py[cod]
*$py.class
# Distribution / packaging
dist/
build/
*.egg-info/
# IDE
.vscode/
.idea/
*.swp
# Environment variables
.env
# Database
*.db
*.sqlite3
# OS
.DS_Store
Thumbs.db
Kiedy tworzyć nowe środowisko?
Utwórz nowe środowisko wirtualne dla:
- Każdego nowego projektu
- Testowania nowej wersji biblioteki
- Projektu, który wymaga różnych wersji pakietów niż inne projekty
- Eksperymentowania z kodem (żeby nie psuć głównego środowiska)
Nie twórz nowego środowiska gdy:
- Pracujesz nad tym samym projektem na innym branchu Git (użyj tego samego venv)
- Piszesz prosty skrypt testowy (chyba że wymaga specjalnych pakietów)
Kompilator, interpreter, debugger
1. Jak komputer „rozumie” nasz kod?
Komputer rozumie tylko język maszynowy (zera i jedynki). Kod, który piszemy (np. w Pythonie), musi zostać w jakiś sposób przetłumaczony na instrukcje zrozumiałe dla procesora. Do tego służą kompilatory i interpretery.
2. Kompilator
Kompilator to program, który tłumaczy CAŁY kod źródłowy na kod maszynowy (lub inny język niższego poziomu) jeszcze przed uruchomieniem programu. Powstaje plik wykonywalny (np. .exe), który można uruchamiać wielokrotnie bez ponownego tłumaczenia.
Cechy:
- Tłumaczenie odbywa się jednorazowo, „z góry” (ahead-of-time).
- Błędy wykrywane są przed uruchomieniem programu (na etapie kompilacji).
- Gotowy program zwykle działa szybciej.
- Przykłady języków kompilowanych: C, C++, Rust, Go.
Analogia: Kompilator jest jak tłumacz, który tłumaczy całą książkę na inny język, zanim ktokolwiek zacznie ją czytać.
3. Interpreter
Interpreter to program, który tłumaczy i wykonuje kod linia po linii, w trakcie działania programu — nie tworzy osobnego pliku wykonywalnego.
Cechy:
- Tłumaczenie i wykonanie dzieje się „na żywo”.
- Błędy wykrywane są dopiero wtedy, gdy interpreter dojdzie do danej linijki.
- Łatwiej testować i modyfikować kod (nie trzeba go kompilować od nowa).
- Programy działają zazwyczaj wolniej niż skompilowane.
- Przykłady języków interpretowanych: Python, JavaScript, Ruby, PHP.
Analogia: Interpreter jest jak tłumacz symultaniczny — tłumaczy zdanie po zdaniu, na bieżąco, w trakcie wystąpienia mówcy.
4. Jak to wygląda w Pythonie?
Python jest językiem interpretowanym, choć w praktyce jest to trochę bardziej złożone:
- Kod źródłowy (
.py) jest najpierw tłumaczony na tzw. bytecode (plik.pyc) — to pośredni etap, coś między kompilacją a interpretacją. - Bytecode jest następnie wykonywany przez wirtualną maszynę Pythona (PVM – Python Virtual Machine), czyli interpreter.
Dlatego mówi się, że Python jest „kompilowany do bytecode’u, a potem interpretowany”.
Najpopularniejsza implementacja Pythona to CPython — to właśnie ją najczęściej mamy na komputerze, gdy piszemy python w terminalu.
Krótkie porównanie
| Cecha | Kompilator | Interpreter |
|---|---|---|
| Kiedy tłumaczy | Przed uruchomieniem | W trakcie działania |
| Wynik | Plik wykonywalny | Brak osobnego pliku |
| Wykrywanie błędów | Przed uruchomieniem | W trakcie działania |
| Szybkość działania | Zwykle szybsza | Zwykle wolniejsza |
| Przykład | C, C++ | Python, JS |
5. Debugger (debugger/debuger)
Debugger to narzędzie, które pomaga znaleźć błędy (tzw. bugi) w kodzie poprzez śledzenie jego działania krok po kroku.
Do czego służy?
- Zatrzymywanie programu w wybranym miejscu (breakpoint, czyli „pułapka”).
- Podgląd wartości zmiennych w danym momencie działania programu.
- Wykonywanie kodu linia po linii (step by step).
- Sprawdzanie, którędy „przechodzi” program (np. czy wchodzi do danego
if).
Podstawowe pojęcia
- Breakpoint – punkt, w którym program się zatrzymuje.
- Step over – wykonaj bieżącą linię i przejdź do następnej (bez wchodzenia do funkcji).
- Step into – wejdź do środka wywoływanej funkcji.
- Step out – wyjdź z bieżącej funkcji do miejsca, które ją wywołało.
- Watch – obserwowanie wartości konkretnej zmiennej.
Debugger w Pythonie
1. Wbudowany moduł pdb:
import pdb
x = 5
y = 0
pdb.set_trace() # program zatrzyma się w tym miejscu
wynik = x / y
print(wynik)
Po zatrzymaniu w konsoli można wpisywać komendy:
n(next) – następna linias(step) – wejdź do funkcjic(continue) – kontynuuj do następnego breakpointup zmienna(print) – wypisz wartość zmiennejq(quit) – zakończ debugowanie
2. Debugger w edytorze (np. VS Code, PyCharm):
- klikamy obok numeru linii, by ustawić breakpoint (czerwona kropka),
- uruchamiamy program w trybie „Debug” (nie „Run”),
- program zatrzymuje się na breakpoincie, a my widzimy wartości zmiennych w panelu bocznym.
6. Podsumowanie
- Kompilator – tłumaczy cały kod na raz, przed uruchomieniem (np. C++).
- Interpreter – tłumaczy i wykonuje kod na bieżąco, linia po linii (np. Python).
- Python w praktyce łączy oba podejścia: kod → bytecode → wykonanie przez interpreter (PVM).
- Debugger – narzędzie do „podglądania” działania programu i wyszukiwania błędów krok po kroku.
7. Pytania kontrolne (do sprawdzenia zrozumienia)
- Czym różni się kompilator od interpretera?
- Czy Python jest językiem kompilowanym, czy interpretowanym? Uzasadnij.
- Co to jest bytecode?
- Do czego służy breakpoint w debuggerze?
- Jaka jest różnica między
step overastep into?
PODSUMOWANIE TEMATU
Czym jest Python
- Python 3 jest językiem interpretowanym, wysokopoziomowym, dynamicznie typowanym i wieloplatformowym.
- Wspiera programowanie proceduralne, obiektowe i funkcyjne.
- Typu zmiennej nie deklarujemy. Interpreter rozpoznaje go po przypisanej wartości (
x = 5to liczba całkowita,name = "Jan"to tekst). - Pamięcią zarządza garbage collector. Uczeń nie operuje wskaźnikami.
Kompilator a interpreter
- Kompilator tłumaczy cały kod przed uruchomieniem i tworzy plik wykonywalny. Błędy wykrywa przed startem programu (C, C++, Rust, Go).
- Interpreter tłumaczy i wykonuje kod na bieżąco, linia po linii. Błąd wychodzi dopiero wtedy, gdy interpreter dojdzie do danej linijki.
- Python działa dwuetapowo: kod
.py→ bytecode (.pyc) → wykonanie przez PVM (Python Virtual Machine). - Najpopularniejsza implementacja to CPython.
Instalacja
- Podczas instalacji trzeba zaznaczyć Add Python to PATH. Bez tego
pythonnie działa z wiersza poleceń. - PATH to zmienna systemowa wskazująca, gdzie system szuka programów.
- Instalację sprawdzamy poleceniami
python --versionipip --version.
pip i PyPI
- pip instaluje się razem z Pythonem i pobiera pakiety z repozytorium PyPI.
- Pakiet to gotowa biblioteka napisana przez innych programistów.
Środowiska wirtualne (venv)
- Problem: dwa projekty mogą wymagać różnych wersji tej samej biblioteki, a instalacja globalna jest wspólna dla wszystkich.
- Rozwiązanie: każdy projekt dostaje własne środowisko z własną kopią Pythona i własnymi pakietami.
- Kolejność pracy: utwórz → aktywuj → instaluj pakiety → pracuj →
deactivate. - Aktywne środowisko poznasz po
(venv)przed ścieżką w terminalu. - Folder
venvtworzy się od nowa na każdym komputerze, więc nie trafia do Gita. - Do Gita trafia
requirements.txt, avenv/wpisujemy do.gitignore.
Debugger
- Pozwala zatrzymać program (breakpoint), podglądać zmienne i iść krok po kroku.
- Uruchamiamy w trybie Debug, a nie Run. W przeciwnym razie breakpointy nie zadziałają.
Typowe źródła błędów
- Brak zaznaczonego PATH przy instalacji.
- Instalowanie pakietów bez aktywnego środowiska, czyli instalacja globalna.
- Mylenie
step overzstep into. - Commitowanie folderu
venv.
Minimum, które powinno wejść w pamięć
Jeżeli masz zapamiętać tylko kilka rzeczy z tej lekcji, zapamiętaj te:
- Python jest interpretowany (w praktyce: kod → bytecode → PVM) i dynamicznie typowany.
- Przy instalacji zawsze zaznacz PATH.
- Sprawdzenie instalacji:
python --versionipip --version. - Instalacja pakietu:
pip install nazwa_pakietu. - Środowisko wirtualne:
python -m venv venv, a potem aktywacja (Windows:venv\Scripts\activate, Linux/Mac:source venv/bin/activate). (venv)w terminalu oznacza aktywne środowisko. Wyjście:deactivate.- Zależności zapisujemy w
requirements.txt(pip freeze > requirements.txt), avenv/trafia do.gitignore. - Debugger: breakpoint zatrzymuje program,
step overomija wnętrze funkcji,step intowchodzi do środka.
Ściągawka – najważniejsze polecenia i składnia
Sprawdzenie instalacji
| Polecenie | Działanie |
|---|---|
python --version | wersja Pythona |
pip --version | wersja pip (lub pip3 --version) |
pip
| Polecenie | Działanie |
|---|---|
pip install pakiet | instalacja pakietu |
pip install pakiet==1.2.3 | instalacja konkretnej wersji |
pip install --upgrade pakiet | aktualizacja pakietu |
pip uninstall pakiet | odinstalowanie pakietu |
pip list | lista zainstalowanych pakietów |
pip show pakiet | szczegóły pakietu |
pip freeze > requirements.txt | zapis zależności do pliku |
Środowisko wirtualne
| Krok | Windows | Linux / Mac |
|---|---|---|
| Utworzenie | python -m venv venv | python -m venv venv |
| Aktywacja | venv\Scripts\activate | source venv/bin/activate |
| Wyłączenie | deactivate | deactivate |
Schemat startu projektu
mkdir moj_projekt
cd moj_projekt
python -m venv venv
venv\Scripts\activate
pip install flask
pip freeze > requirements.txt
Kompilator a interpreter
| Cecha | Kompilator | Interpreter |
|---|---|---|
| Kiedy tłumaczy | przed uruchomieniem | w trakcie działania |
| Wynik | plik wykonywalny | brak osobnego pliku |
| Błędy | przed uruchomieniem | w trakcie działania |
| Przykład | C, C++ | Python, JS |
Debugger
| Pojęcie | Znaczenie |
|---|---|
| Breakpoint | miejsce zatrzymania programu |
| Step over | wykonaj bieżącą linię, nie wchodź do funkcji |
| Step into | wejdź do wywoływanej funkcji |
| Step out | wyjdź z bieżącej funkcji |
| Watch | obserwacja wartości zmiennej |
Komendy pdb (po import pdb i pdb.set_trace())
| Komenda | Działanie |
|---|---|
n | następna linia |
s | wejdź do funkcji |
c | kontynuuj do kolejnego breakpointu |
p zmienna | wypisz wartość zmiennej |
q | zakończ debugowanie |
Quiz – sprawdź się
Pytanie 1. Czym różni się kompilator od interpretera? Podaj różnicę dotyczącą momentu wykrywania błędów.
Pytanie 2. Jak działa Python? Ułóż w poprawnej kolejności: wykonanie przez PVM, kod źródłowy .py, bytecode.
Pytanie 3. Co zostanie wyświetlone?
python
x = 5
x = "tekst"
print(x)
Czy ten kod zgłosi błąd? Uzasadnij odpowiedź, odwołując się do sposobu typowania w Pythonie.
Pytanie 4. Która komenda poprawnie tworzy środowisko wirtualne o nazwie venv?
- A)
pip install venv - B)
python -m venv venv - C)
python venv venv
Pytanie 5. Uzupełnij komendy.
# aktywacja środowiska w Windows:
______\Scripts\______
# aktywacja środowiska w Linux/Mac:
______ venv/bin/activate
# instalacja Django w wersji 4.2.0:
pip install django____4.2.0
Pytanie 6. Uczeń wpisał w terminalu python --version i otrzymał komunikat, że polecenie python nie zostało rozpoznane. Podaj najbardziej prawdopodobną przyczynę i sposób naprawy.
Pytanie 7. Uczeń utworzył środowisko, ale nie wpisał polecenia aktywacji. Następnie wykonał pip install flask. Gdzie zostanie zainstalowany Flask? Po czym uczeń mógł poznać, że środowisko jest (lub nie jest) aktywne?
Pytanie 8. Co robi poniższa komenda i po co się ją stosuje?
pip freeze > requirements.txt
Pytanie 9. Dwóch uczniów pracuje nad jednym projektem w Gicie. Pierwszy zacommitował cały folder venv. Wyjaśnij, dlaczego to błąd i co powinien commitować zamiast tego.
Pytanie 10. Znajdź błąd w opisie: „Program uruchomiony w trybie Run zatrzyma się na ustawionym breakpoincie i pokaże wartości zmiennych w panelu bocznym”.
Pytanie 11. Debugger zatrzymał się na linii z wywołaniem funkcji licz(). Jak różni się efekt wyboru step over od step into?
Pytanie 12. Program został zatrzymany przez pdb.set_trace(). Jakiej komendy pdb użyjesz, aby:
a) sprawdzić wartość zmiennej x,
b) przejść do następnej linii,
c) zakończyć debugowanie?
Pytanie 13 (zadanie praktyczne). Zapisz sekwencję poleceń (Windows), która:
- utworzy folder
sklepi wejdzie do niego, - utworzy środowisko wirtualne
venv, - aktywuje środowisko,
- zainstaluje pakiet
requests, - zapisze zależności do pliku
requirements.txt.
Odpowiedzi
1. Kompilator tłumaczy cały kod przed uruchomieniem programu i wykrywa błędy jeszcze przed startem. Interpreter tłumaczy i wykonuje kod linia po linii w trakcie działania, więc błąd wychodzi dopiero po dojściu do danej linijki.
2. Kod źródłowy .py → bytecode → wykonanie przez PVM.
3. Zostanie wyświetlone tekst. Błędu nie będzie, bo Python jest dynamicznie typowany. Typ zmiennej wynika z aktualnie przypisanej wartości, więc ta sama nazwa może wskazywać najpierw liczbę, a potem tekst.
4. Poprawna jest odpowiedź B: python -m venv venv. Odpowiedź A próbuje instalować pakiet o nazwie venv, a odpowiedź C nie ma przełącznika -m.
5.
venv\Scripts\activate
source venv/bin/activate
pip install django==4.2.0
6. Python nie został dodany do PATH podczas instalacji. Naprawa: zainstalować Python ponownie z zaznaczoną opcją Add Python to PATH albo dodać ścieżkę ręcznie w zmiennych środowiskowych Windowsa.
7. Flask zostanie zainstalowany globalnie, a nie w środowisku projektu. Aktywne środowisko poznajemy po (venv) przed ścieżką w terminalu. Jego brak oznacza, że środowisko nie jest aktywne.
8. Komenda zapisuje listę zainstalowanych pakietów wraz z wersjami do pliku requirements.txt. Dzięki temu inna osoba może odtworzyć to samo środowisko.
9. Folder venv zawiera tysiące plików, binarki zależne od systemu operacyjnego i setki megabajtów danych. Do Gita należy commitować requirements.txt, a venv/ dopisać do .gitignore. Drugi uczeń utworzy własne środowisko na podstawie requirements.txt.
10. Breakpointy działają w trybie Debug, a nie Run. Program uruchomiony przez Run nie zatrzyma się na breakpoincie.
11. Step over wykonuje całą linię z wywołaniem licz() i przechodzi do następnej, bez wchodzenia do funkcji. Step into wchodzi do wnętrza funkcji licz(), więc można prześledzić jej kod linia po linii.
12.
a) p x
b) n
c) q
13.
mkdir sklep
cd sklep
python -m venv venv
venv\Scripts\activate
pip install requests
pip freeze > requirements.txt