/Kurs-Podstaw-Pythona

Jeśli chcesz rozpocząć naukę programowania w języku Python, ten kurs będzie doskonałym wyborem. Kurs jest starannie podzielony na cztery sekcje, co umożliwia stopniowe przyswajanie wiedzy i umiejętności niezbędnych do opanowania tego języka. Dzięki temu, krok po kroku, zdobędziesz solidne podstawy oraz zaawansowane techniki programowania w Pythonie

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Kurs Podstaw Pythona

Jeśli chcesz rozpocząć naukę programowania w języku Python, ten kurs będzie doskonałym wyborem. Kurs jest starannie podzielony na cztery sekcje, co umożliwia stopniowe przyswajanie wiedzy i umiejętności niezbędnych do opanowania tego języka. Dzięki temu, krok po kroku, zbudujesz solidne podstawy oraz poznasz zaawansowane techniki programowania w Pythonie.

Capture

O Kursie

Celem tego kursu jest nauka podstaw programowania w języku Python. Kurs jest starannie podzielony na cztery sekcje: podstawy, tematy średniozaawansowane, inżynieria oprogramowania oraz Python w praktyce. Każda z tych sekcji zawiera wiele lekcji i zagadnień, które pomogą zrozumieć fundamentalne zasady programowania oraz zastosować je w praktyce.

Kurs obejmuje następujące tematy:

  1. Podstawy:

    • Instalacja Pythona w systemie Windows
    • Interaktywna konsola
    • Zmienne, warunki, pętle i pętle zagnieżdżone
    • Funkcje, napisy, struktury danych
    • Enum, liczby losowe
  2. Tematy średniozaawansowane:

    • Klasy i obiekty, referencje i kopiowanie
    • Czyste funkcje i skutki uboczne
    • Dziedziczenie i kompozycja
    • Wyrażenia regularne, wyjątki
    • Wątki, procesy, asyncio
    • Lambdy, programowanie funkcyjne
    • Klasy danych, generatory, iteratory, dekoratory
    • Serializacja
  3. Inżynieria oprogramowania:

    • Moduły i pakiety, wersje Pythona
    • PIP i PyPI, środowisko wirtualne
    • Dbanie o jakość kodu i lintowanie
    • Debugowanie, testy jednostkowe, dokumentacja
    • Pliki wykonywalne i PyInstaller, kod bajtowy
  4. Python w praktyce:

    • Argumenty linii poleceń
    • Praca z plikami i folderami, Pandas i CSV
    • Praca z plikami PDF
    • Informacje o systemie operacyjnym
    • HTTP i prosty serwer
    • API z FastAPI, bazy danych z SQLite
    • Tkinter, logi

Podstawy

Python to wszechstronny język programowania, znany z prostej składni i dużej elastyczności. Jest szeroko stosowany w różnych dziedzinach, od nauk ścisłych po tworzenie aplikacji internetowych. W tej sekcji skupimy się na fundamentach języka, które stanowią podstawę do dalszej nauki i bardziej zaawansowanych projektów.

Na początek omówimy instalację Pythona na systemie Windows oraz korzystanie z interaktywnej konsoli, co umożliwi natychmiastowe testowanie i eksperymentowanie z kodem. Następnie przejdziemy do podstawowych konceptów, takich jak zmienne, operatory, instrukcje warunkowe oraz pętle, które są kluczowe do zrozumienia logiki programowania.

Poznamy także bardziej zaawansowane elementy, takie jak funkcje, które pozwalają na organizowanie kodu w bardziej czytelny i modułowy sposób, oraz struktury danych, w tym listy, krotki, słowniki i zbiory, które są niezbędne do efektywnego zarządzania danymi.

Na koniec tej sekcji zajmiemy się również bardziej specyficznymi elementami Pythona, takimi jak napisy, enumy i generowanie liczb losowych, co umożliwi tworzenie bardziej złożonych i interaktywnych programów. Te fundamenty zapewnią solidne podstawy do dalszego rozwoju w kierunku średniozaawansowanych i zaawansowanych technik programowania w Pythonie.

Notatki

Temat Notatki
Instalacja w systemie windows
Interaktywna Konsola
Zmienne
Warunki
Pętle
Funkcje
Napisy
Struktury Danych
Enum
Liczby Losowe

Przykłady

Numer Opis Kod
1 Zmienne
2 Wejście i Wyjście
3 Warunki
4 Łączenie Warunków
5 Pętla While
6 Pętla For
7 Zagnieżdżanie pętli
8 Funkcje
9 Kalkulator
10 Naiwny test pierwszości
11 Liczby losowe
12 Rekurencja
13 Rekurencja - spółgłoski
14 Rekurencja - wielkość liter
15 Listy
16 Wyrażenia listowe
17 Sortowanie bąbelkowe
18 Sortowanie przez wybieranie
19 Sortowanie szybkie
20 Bogo sort
21 Przeszukiwanie listy
22 Krotki
23 Napisy
24 Szyfr Cezara
25 Wisielec
26 Zbiory
27 Słowniki
28 Histogram imion
29 Listy 2D
30 Lista słowników
31 Sito Eratostenesa

Tematy średniozaawansowane

Ta sekcja jest przeznaczona dla osób, które opanowały podstawy programowania w Pythonie i chcą poszerzyć swoją wiedzę o bardziej zaawansowane tematy. Skupimy się na takich zagadnieniach jak klasy i programowanie obiektowe, które pozwalają na tworzenie złożonych i dobrze zorganizowanych aplikacji.

Przyjrzymy się również tworzeniu własnych struktur danych, co umożliwi dostosowanie Pythona do specyficznych potrzeb Twoich projektów. Programowanie funkcyjne będzie kolejnym krokiem, obejmującym takie koncepcje jak lambdy, czyste funkcje i skutki uboczne, co pozwoli na bardziej eleganckie i efektywne pisanie kodu.

Dodatkowo, omówimy mechanizmy takie jak wątki i procesy, które są kluczowe dla tworzenia aplikacji wielowątkowych i równoległych. Zajmiemy się również obsługą wyjątków, co jest niezbędne do pisania niezawodnego i odpornego na błędy kodu.

Nie zabraknie także tematyki iteratorów i generatorów, które umożliwiają efektywne zarządzanie dużymi zbiorami danych oraz dekoratorów, które pozwalają na modyfikowanie funkcji i metod w elastyczny sposób. Ta sekcja przygotuje Cię do jeszcze bardziej zaawansowanego programowania i rozwiązywania złożonych problemów w Pythonie.

Notatki

Temat Notatki
Klasy i obiekty
Referencje i kopiowanie
Czyste funkcje i skutki uboczne
Dziedziczenie i kompozycja
Wyrażenia regularne
Wyjątki
Wątki
Procesy
Asyncio
Lambdy
Programowanie funkcyjne
Klasy danych
Generatory
Iteratory
Dekoratory
Serializacja

Przykłady

Numer Opis Kod
1 Klasy
2 Operacje na obiektach
3 Zmienne statyczne
4 Kopiowanie płytkie i głębokie
5 Czyste funkcje
6 Dziedziczenie a kompozycja
7 Małpi wojownik
8 Polimorfizm
9 Duck typing
10 Wektor
11 Wyrażenia regularne a
12 Wyrażenia regularne b
13 Wyrażenia regularne c
14 Wyjątki
15 Wątki
16 Procesy
17 Asyncio
18 Lambdy
19 Elementy programowania funkcyjnego
20 Klasy danych
21 Iteratory
22 Generator liczb pierwszych
23 Generator liczb Fibonnaciego
24 Dekoratory
25 Lista Połączona
26 Odwracanie listy
27 Sortowanie listy
28 Lista palindromiczna
29 Usuwanie duplikatów z listy
30 Binarne drzewo poszukiwań
31 Generowanie labiryntów

Inżynieria oprogramowania

Inżynieria oprogramowania to dziedzina zajmująca się kompleksowym procesem tworzenia oprogramowania, obejmującym projektowanie, implementację oraz utrzymanie aplikacji. Kluczowymi aspektami w tej dziedzinie są dobór odpowiednich narzędzi i metodologii, efektywne zarządzanie projektem oraz współpraca w zespole.

W tej sekcji omówimy różne narzędzia i techniki, które wspierają proces tworzenia oprogramowania. Poznasz moduły i pakiety Pythona, które pomagają w organizowaniu kodu i zarządzaniu zależnościami. Dowiesz się, jak korzystać z systemów zarządzania wersjami, takich jak Git, aby śledzić zmiany w kodzie i współpracować z innymi programistami.

Omówimy także zarządzanie pakietami za pomocą PIP i PyPI, co pozwala na łatwą instalację i aktualizację bibliotek. Wprowadzenie do tworzenia i zarządzania środowiskami wirtualnymi pomoże Ci izolować projekty i uniknąć konfliktów zależności.

Kolejnym ważnym tematem będzie dbanie o jakość kodu, w tym lintowanie, czyli automatyczne sprawdzanie zgodności kodu ze standardami, oraz techniki debugowania, które pomogą w identyfikacji i naprawie błędów. Dowiesz się również, jak pisać testy jednostkowe, aby zapewnić niezawodność i stabilność aplikacji.

Nie zapomnimy o dokumentacji, która jest nieodzowną częścią każdego projektu, oraz o tworzeniu plików wykonywalnych za pomocą narzędzi takich jak PyInstaller. Poznasz również, czym jest kod bajtowy i jak Python interpretuje Twój kod. Ta sekcja przygotuje Cię do pracy nad rzeczywistymi projektami programistycznymi, zapewniając solidne podstawy w inżynierii oprogramowania.

Notatki

Temat Notatki
Moduły i pakiety
Wersje Pythona
Pip i PyPI
Środowisko wirtualne
Dbanie o jakość kodu
Debugowanie
Testy jednostkowe
Dokumentacja
Pliki wykonywalne i PyInstaller
Kod bajtowy

Python w praktyce

W tej części skupimy się na praktycznych aspektach pracy z językiem Python, omawiając narzędzia i biblioteki, które są niezwykle przydatne podczas tworzenia różnorodnego oprogramowania.

Na początek, zajmiemy się obsługą argumentów linii poleceń, co pozwoli na tworzenie bardziej dynamicznych i elastycznych skryptów. Następnie przejdziemy do pracy z plikami i folderami, ucząc się jak efektywnie zarządzać danymi na dysku.

Kolejnym krokiem będzie zapoznanie się z biblioteką Pandas, która umożliwia wygodną i efektywną pracę z plikami CSV oraz analizę danych. Omówimy również, jak manipulować plikami PDF i jak uzyskiwać informacje o systemie operacyjnym, co może być przydatne w wielu praktycznych zastosowaniach.

Przyjrzymy się również tematom związanym z siecią, takim jak obsługa protokołu HTTP oraz tworzenie prostego serwera. Wprowadzenie do tworzenia API za pomocą biblioteki FastAPI pozwoli na budowanie nowoczesnych i wydajnych interfejsów do komunikacji między różnymi aplikacjami.

Nie zabraknie też tematyki baz danych – nauczymy się korzystać z SQLite, co umożliwi efektywne zarządzanie danymi w aplikacjach. Na koniec zapoznamy się z biblioteką Tkinter, która służy do tworzenia interfejsów graficznych, oraz z narzędziami do gromadzenia logów, co jest kluczowe dla monitorowania i debugowania aplikacji.

Dzięki tej sekcji zdobędziesz praktyczne umiejętności, które pozwolą Ci tworzyć wszechstronne i funkcjonalne aplikacje w języku Python.

Notatki

Temat Notatki
Argumenty linii poleceń
Praca z plikami i folderami
Pandas i CSV
Praca z plikami PDF
Informacje o systemie operacyjnym
HTTP i prosty serwer
API wraz z FastAPI
Bazy danych z SQLite
Tkinter
Logi

Dodatkowe materiały