Python średnio zaawansowany
Czas trwania szkolenia:5 dni (40h)
Kod kursu:PYTHON/MID
Poziom zaawansowania:
O szkoleniu Python średnio zaawansowany
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Programiści języka Python
- Analitycy Danych, Data Scientist lub osoby zajmujące się Machine Learning
Wymagania
- Podstawowa umiejętność programowania i debugowania w języku Python
- Dobra znajomość wybranego środowiska IDE (preferowany PyCharm)
- Znajomość koncepcji programowania obiektowego
Zalety
- Uczestnicy szkolenia Python średnio zaawansowany nauczą się korzystać z biblioteki standardowej Python
- Uczestnicy zdobędą umiejętność refaktoryzacji i pracy z debuggerem
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Poszerzenie wiedzy dotyczącej programowania w języku Python
- Zapoznanie się z alternatywnymi wersjami interpretera
- Nauka refaktoringu i dobrych praktyk związanych z tworzeniem czystego kodu w języku Python
Program
Wyrażenia z gwiazdką
- Przypisanie z gwiazdką (rozpakowywanie)
- Rozpakowywanie parametrów (*args, \**kwargs)
- Rozpakowywanie argumentów (*args, \**kwargs)
- Definiowanie API
Pattern Matching
- Wprowadzenie do składni
- Wzorce: literal, or, wildcard, capture, constant
- Wzorce: sequence, mapping, class, walrus
- Guard i subpattern
Idiomy języka Python
- range, zip, enumerate
- map, filter
- all, any
Generatory
- Wyrażenia generatorowe
- Funkcje generatorowe
- Introspecka
- Słowa kluczowe yield i yield from
- Moduł itertools
Format JSON
- Specyfika formatu i najczęstsze problemy
- Zapis i odczyt prostych danych
- Enkoder i dekoder dla dat i obiektów złożonych
Format CSV
- Specyfika formatu i najczęstsze problemy
- Problemy lokalizacyjne: separatory, końce linii, encoding
- Zapis i odczyt danych płaskich, moduł csv
- Zapis i odczyt danych relacyjnych
- Moduł csv oraz pandas
Format TOML
- Specyfika formatu i najczęstsze problemy
- Odczyt danych
- Co to jest plik pyproject.toml
Format Pickle
- Serializacja i deserializacja obiektów, dat, relacji
- Zapis do pliku, odczyt z pliku
- Wersje protokołów i kompatybilność
Wyrażenia regularne
- Składnia (identifier, qualifiers, quantifiers, groupping, backreference)
- Wyrażenia chciwe i leniwe
- Wyszukiwanie wieloliniowe
- Grupy nazwane, pozycyjne, niechwytające i komentarze
- Korzystanie z wyrażeń regularnych w Python
Daty i strefy czasowe
- Tworzenie obiektów dat, parsowanie i formatowanie - datetime
- Przesunięcia czasu i dat - timedelta
- Praca z timestamp - time, datetime
- Obsługa stref czasowych - zoneinfo
- Obsługa kalendarza - calendar
Enum
- Definicja i wykorzystanie
- StrEnum, IntEnum, auto
Moduły
- Środowiska wirtualne - venv
- Zarządzanie zależnościami - requirements.txt
CI/CD w projektach Python
- Zależności dev, cicd, prod (frozen)
- Statyczna analiza kodu źródłowego - pylint, pylama, sonarlint, pyflakes
- Standardy programowania PEP8, PEP20 i dobre praktyki - pycodestyle, pydocstyle
- Wyszukiwanie podatności bezpieczeństwa - bandit
Logowanie
- Wykorzystanie i poziomy logowania
- Warnings i oznaczanie jako przestarzałe (deprecation)
- Podstawowa i plikowa konfiguracja
- Formattery, handlery
- Rotowanie logów i optymalizacja
Matematyka
- Problem precyzji float - IEEE-754
- Liczby pseudolosowe - random
Testy i Test Driven Development (TDD)
- Unittest
- Doctest
- Ćwiczenia TDD w praktyce
- Praca z debuggerem w IDE
Projekt praktyczny
- Zastosowanie technologii ze szkolenia
- Dobre praktyki
- Wykorzystanie debuggera w IDE
- Techniki refactoringu
Bazy danych
- DB API na przykładzie SQLite3
- Tworzenie i zmienianie schema (CREATE, ALTER, DROP)
- Tworzenie i zmienianie danych (INSERT, UPDATE, DELETE)
- Wybór danych (SELECT, podzapytania, kursory, relacje, indeksy)