Odcinek 6/15 – Moduły i biblioteki w Pythonie

foto kurs pythona odcinek 6

Cel: po tym rozdziale będziesz wiedzieć:

  • czym jest moduł i pakiet,
  • jak importować własny i cudzy kod,
  • jak instalować zewnętrzne biblioteki,
  • jak używać tysięcy gotowych narzędzi w Pythonie.

1) Co to jest moduł?

Wyobraź sobie, że piszesz program i wiele razy potrzebujesz tych samych obliczeń.
Zamiast wklejać kod w każdym miejscu, wkładasz go do osobnego pliku .py – to właśnie moduł.

Przykład – moduł math (wbudowany w Pythona):

import math

print(math.sqrt(16))  # 4.0 – pierwiastek
print(math.pi)        # 3.141592...

Tak jak w domu masz pudełko z narzędziami, tak w Pythonie masz plik z gotowymi funkcjami.


2) Jak importować moduły

Cały moduł

import random
print(random.randint(1, 6))  # losowa liczba 1–6

Wybrane elementy

from math import sqrt, pi
print(sqrt(9), pi)

Krótsza nazwa (alias)

import numpy as np
print(np.array([1, 2, 3]))

💡 Rada: unikaj from X import * – wprowadza bałagan, bo nie wiadomo, skąd pochodzi dana funkcja.


3) Moduły standardowe – wbudowane skarby

Python ma dziesiątki gotowych modułów. Nie musisz nic instalować.

ModułDo czego służyPrzykład
mathfunkcje matematycznemath.sqrt(25)
randomlosowanierandom.choice([1,2,3])
datetimedaty i czasdatetime.date.today()
os / syspliki, foldery, info o systemieos.listdir()
statisticsśrednia, medianastatistics.mean([1,2,3])
jsonzapis/odczyt JSONjson.dumps({"a":1})

Praktyka – losowanie hasła z liter:

import random, string

letters = string.ascii_letters
password = "".join(random.choice(letters) for _ in range(8))
print(password)

4) Tworzenie własnego modułu

1️⃣ Utwórz plik moj_modul.py:

def powitanie(imie):
    return f"Cześć, {imie}!"

2️⃣ W tym samym katalogu stwórz main.py:

import moj_modul

print(moj_modul.powitanie("Ala"))

💡 Python widzi oba pliki w jednym folderze i wie, skąd wziąć funkcję.


5) Pakiety – foldery z modułami

Pakiet = folder z plikiem __init__.py (może być pusty).
Przykład struktury:

projekt/
  sklep/
    __init__.py
    koszyk.py
    produkty.py

W pliku głównym:

from sklep.koszyk import dodaj_produkt

Pakiety pozwalają dzielić duże projekty na porządne katalogi.


6) Instalowanie bibliotek zewnętrznych (pip)

Wbudowane moduły to dopiero początek.
Python ma menedżera pip, który pobiera gotowe paczki z internetu.

W terminalu:

pip install requests

Przykład – pobieranie danych z internetu:

import requests

r = requests.get("https://jsonplaceholder.typicode.com/todos/1")
print(r.json())

💡 W większych projektach warto używać wirtualnych środowisk (venv), by nie mieszać bibliotek między różnymi projektami.


7) Sprawdzanie zainstalowanych pakietów

  • Lista wszystkich:
pip list
  • Szczegóły jednego pakietu:
pip show requests

8) Mini-projekty (proste i praktyczne)

A) Kalkulator dat

import datetime

today = datetime.date.today()
future = today + datetime.timedelta(days=100)
print("Dziś:", today)
print("Za 100 dni:", future)

B) Generator kuponów

import random

kupony = [random.randint(1000, 9999) for _ in range(5)]
print("Twoje kupony:", kupony)

C) Konwerter walut (proste API)

import requests

resp = requests.get("https://api.exchangerate.host/latest?base=EUR&symbols=PLN")
data = resp.json()
print("1 EUR =", data["rates"]["PLN"], "PLN")

9) Typowe pułapki i szybkie naprawy

ProblemDlaczegoRozwiązanie
ModuleNotFoundErrorbrak bibliotekipip install nazwa_pakietu
Literówka w nazwienp. import Numpy zamiast numpysprawdź pisownię
Konflikt nazwplik random.py w katalogu zasłania moduł randomzmień nazwę pliku

10) Zadania do samodzielnego zrobienia

  1. Własny moduł geometry.py z funkcjami pole_kwadratu(a) i pole_kola(r).
  2. Pakiet shop z modułami cart.py (lista produktów) i user.py (dane klienta).
  3. Gra „Zgadnij liczbę” 1–20 – użyj random.randint().
  4. Skrypt pobierający prognozę pogody z darmowego API (requests).
  5. Własna mała biblioteka z 2–3 prostymi funkcjami i test w innym pliku.

Co zabierasz z odcinka 6?

  • Wiesz, czym są moduły i pakiety.
  • Umiesz korzystać z biblioteki standardowej i instalować cudze pakiety przez pip.
  • Potrafisz napisać własny moduł i wczytać go w innym pliku.
  • Rozpoznajesz i unikasz typowych błędów z importem.