Cel szkolenia
Celem szkolenia jest wyjaśnienie zasad tworzenia oprogramowania w języku Python w zakresie programowania funkcyjnego i obiektowego.
Po ukończeniu szkolenia uczestnik będzie potrafił:
- Założyć strukturę projektu.
- Sprawnie korzystać z składni
- Korzystać z źródeł danych
- Programować strukturalnie i obiektowo
- Projektować graficzny interfejs użytkownika
Wymagania wstępne
Przed szkoleniem uczestnik powinien posiadać minimum wiedzy z zakresu:
- sprawna obsługa komputera,
- korzystanie z głównych elementów systemu operacyjnego i funkcji pulpitu oraz skutecznie poruszanie się w środowisku graficznym
- znajomości podstawowych koncepcji zarządzania plikami
Program szkolenia
Środowisko pracy
- Wybór środowiska programowania
- Interfejs środowiska programowania
- Instalacja modułów poprzez pip
- Podstawowe polecenia print, input
- Typy danych
- Operatory arytmetyczne, logiczne
- Operacje arytmetyczne
- Rola wcięć w kodzie
Struktura aplikacji
- Instrukcje warunkowe
- Pętla iteracyjna for
- Pętla warunkowa while
- Operator tenarny if
Kolekcje i sekwencje
- Łańcuchy znaków – String
- Listy
- Krotki
- Słowniki
- Zbiory
Funkcje
- Deklaracja funkcji
- Przekazywanie argumentów do funkcji
- Argumenty opcjonalne
- Dowolna liczba argumentów
- Funkcja w funkcji
Praca z modułami
- Import modułów
- Tworzenie własnych modułów
- Zastosowanie modułów: os, re, sys, platform i innych
- Operacje z użyciem modułów daty i czasu: time, indatetime
Pliki
- Tryby otwierania
- Odczyt, zapis
- Praca z plikami txt, csv, xml, json, xlsx
- Tworzenie archiwum z użyciem modułu shutil: zip, tar
- Zastosowanie modułów pickle, shelve
Obsługa wyjątków
- Instrukcja try..except..finally
- Rodzaje wyjątków
Bazy danych
- Bazy sql - MySQL lub MS SQL lub Sqlite - tworzenie połączenia
- Bazy NoSql – MongoDB
- Wykonywanie zapytań do bazy dnaych
- Aktualizacja danych w bazie danych
- Usuwanie danych w bazie danych
- Budowa i modyfikacja struktury bazy danych
Funkcje zaawansowane
- Iterator oraz generator - zagadnienia zaawansowane
- Zastosowanie funkcji eval(), exec(), compile()
- Użycie dekoratora funkcji
- Użycie cache z funkcjami
- Użycie wyrażeń lambda
Programowanie obiektowe
- Praca z podstawowymi implementacjami klas
- Deklaracje i użycie metod w klasach
- Publiczne i prywatne atrybuty klasy
- Projektowanie właściwości klas
- Metody statyczne klas - deklaracja i użycie
- Zastosowanie dekoratorów w metodach klas
- Dynamiczne tworzenie metod
- Własne operatory
- Implementacja dziedziczenia z jednej lub wielu klas
Graficzny interfejs użytkownika
- Instalacja bibliotek PyQt
- Instalacja narzędzia Designer
- Projekt interfejsu
- Programowanie widgetów
- Programowanie zdarzeń
Modelowanie ORM
- Wybór frameworka orm: peewee, sqlalchemy
- Programowanie operacji CRUD
- Użycie struktury bazy danych w kodzie
Podstawy programowania testów
- Testowanie funkcji
- Testowanie klasy
Programowanie z użyciem technik równolegle wykonywanego kodu
- Wprowadzenie do programowania z użyciem Thread
- Wprowadzenie do programowanie z użyciem multiprocessing
- Wprowadzenie do programowania z użyciem AsyncIO