Python: Intermediate (level 1)

Polish

  1. Wprowadzenie:

    • Zadania określające poziom grupy

    • Zmiany w najnowszych wydaniach Python

  2. Składnia:

    • Rozwinięcia list, set, dict i wyrażenia generatorowe

    • Generowanie (zip, enumerate, range, map, filter)

    • Unpacking Assignment

  3. Pattern Matching:

    • Wprowadzenie do składni

    • Wzorce: literal, or, wildcard, capture, constant

    • Wzorce: sequence, mapping, class, walrus

    • Guard i subpattern

  4. Print i PPrint:

    • Zaawansowane opcje formatowania - print

    • Formatowanie wyświetlania obiektów - pprint

    • Stringifikacja obiektów (str, repr, format)

  5. 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

  6. Format CSV:

    • Specyfika formatu i najczęstsze problemy

    • Zapis i odczyt danych płaskich, moduł csv

    • Zapis i odczyt danych relacyjnych

    • Moduł csv oraz pandas

  7. Format JSON:

    • Specyfika formatu i najczęstsze problemy

    • Zapis i odczyt prostych danych

    • Enkoder i dekoder dla dat i obiektów złożonych

  8. Format TOML:

    • Specyfika formatu i najczęstsze problemy

    • Odczyt danych

    • Co to jest plik pyproject.toml

  9. Format Pickle:

    • Serializacja i deserializacja obiektów, dat, relacji

    • Zapis do pliku, odczyt z pliku

    • Wersje protokołów i kompatybilność

  10. Wyrażenia regularne:

    • Składnia (identifier, qualifiers, quantifiers, grouping, backreference)

    • Wyrażenia chciwe i leniwe

    • Wyszukiwanie wieloliniowe

    • Grupy nazwane, pozycyjne, niechwytające i komentarze

    • Flagi

    • Korzystanie z wyrażeń regularnych w Python

  11. Bazy danych:

    • DB API i bazy relacyjne na przykładzie SQLite3

    • Tworzenie i zmienianie schema (CREATE TABLE, CREATE INDEX, ALTER, DROP)

    • Tworzenie i zmienianie danych (INSERT, UPDATE, DELETE)

    • Wybór danych (SELECT, podzapytania, kursory, relacje, CTE)

    • Problematyka SQL injection

  12. Projekt praktyczny:

    • Zastosowanie technologii ze szkolenia

    • Dobre praktyki

    • Wykorzystanie debuggera w IDE

English

  1. Unpacking:

    • Unpacking assignment with star

    • Unpacking function parameters with *args, **kwargs

    • Unpacking function arguments using *args, **kwargs

    • Assignment Expression

    • Parameter syntax for defining functions and methods API

  2. Type Annotations:

    • Basic types

    • Sequence

    • Mappings

    • Callables (functions)

    • Classes, objects, methods, attributes

  3. Dates, Times, Time-deltas and Timezones:

    • Datetime object definition, date parsing and formatting - datetime

    • Time shifts - timedelta

    • Working with timestamps

    • Timezone handling - zoneinfo

    • Calendar generation - calendar

  4. Data serialization, dates, objects, nested data structures with relations:

    • CSV format (flat data, relational data)

    • JSON format (simple data structures, dates, objects)

    • Pickle format

  5. Regular Expressions:

    • Syntax (identifiers, qualifiers, quantifiers, groupings, backreference)

    • Lazy and greedy expressions

    • Multiline search

    • Groups: named, positional, non-capturing and comment

    • Using regular expressions in Python

  6. Databases:

    • DB API

    • Relational databases - sqlite3

    • Schema creation, modification and deletion (CREATE, ALTER, DROP)

    • Data creation, modification and deletion (INSERT, UPDATE, DELETE)

    • Data selection (SELECT, subqueries, cursors, relations, indexes)

    • SQL injection

  7. Object-Oriented Programming:

    • Operator overload

    • Enumeration - enum

    • Dataclasses - dataclasses

  8. Quality assurance, logging and debugging:

    • Unit tests, Test Driven Development (TDD) - doctest, unittest

    • Application logging and user warnings - logging, warnings

    • Working with debugger and refactoring tools in IDE

    • Computational complexity and profiling - timeit, cProfile

    • Static code analysis - sonarlint, pylint, pylama, pyflakes

    • Coding standards PEP8, PEP20 and good practices - pycodestyle, pydocstyle

    • Advanced printing and string formatting - print

    • Print formatting and object stringification - pprint, str, repr

  9. Modules and packaging:

    • Virtual environment - venv

    • Package creation - pyproject.toml

    • Dependencies management - requirements.txt

    • pypi.org upload - twine, wheel

    • Package generation - zipapp

    • Executable generation - pyinstaller

    • Alternative compilers and interpreters - pypy

  10. Standard library mathematics:

    • Mathematical functions - math

    • Statistical functions - statistics

    • Pseudo-random concept and functions - random

    • Fractions - fractions

    • Floating point numbers precision problem (IEEE 754) - decimal

    • Complex numbers - complex

  11. Localization and internationalization:

    • Locale

    • i18n

    • l10n

  12. Operating system:

    • Working with paths - pathlib

    • Configuration files parsing - configparser

    • Command line arguments parsing - argparse

    • Running operating system commands - subprocess

    • Temporary files - tempfile

    • Working with operating system, files and directories - os