biblioteka / wpisy

Python

Poradniki, przykłady i projekty w Pythonie — od pierwszego programu po OOP, generatory, dekoratory, GIL i praktyczne miniaplikacje.

Global Interpreter Lock (GIL) w Pythonie – co to jest, dlaczego istnieje i jaka czeka go przyszłość?

Global Interpreter Lock (GIL) w Pythonie – co to jest, dlaczego istnieje i jaka czeka go przyszłość?

Python jest jednym z najpopularniejszych języków programowania. Kochamy go za prostą składnię i ogrom bibliotek. Jednocześnie od lat budzi emocje jeden element: Global Interpreter Lock (GIL). W skrócie to mechanizm, który w danym momencie dopuszcza do wykonania tylko jeden wątek kodu Pythona. W tym tekście wyjaśniam, skąd wziął się GIL, dlaczego wciąż istnieje, kiedy przeszkadza, […]

Czytaj więcej
Czas Pythona: Bitmapowa wiadomość

Czas Pythona: Bitmapowa wiadomość

Komputery to maszyny liczące, dla których istnieją tylko zera i jedynki, ale to pewnie już wiesz. Sprytni ludzie wymyślili, że można za pomocą tych dwóch cyfr zrobić jednak więcej niż tylko liczyć. Można zapisywać różne inne informacje, wykorzystując wszelakie działania na zerach i jedynkach. Jednym z ciekawych pomysłów był tekst, który mógł być tak zapisywany. […]

Czytaj więcej
Czas Pythona: Paradoks dnia urodzin

Czas Pythona: Paradoks dnia urodzin

Paradoks dnia urodzin to zjawisko probabilistyczne, które wydaje się sprzeczne z intuicją. Polega na tym, że w grupie osób istnieje zaskakująco wysokie prawdopodobieństwo, że co najmniej dwie osoby będą miały urodziny tego samego dnia. Przykładowo, w grupie 23 osób prawdopodobieństwo wynosi aż 50,7%, a w grupie 70 osób – aż 99,9%. W tym artykule wyjaśnimy, […]

Czytaj więcej
Zmiana Częstotliwości Wpisów: Nowy Harmonogram Serii „Czas Pythona”

Zmiana Częstotliwości Wpisów: Nowy Harmonogram Serii „Czas Pythona”

Drodzy Czytelnicy, Mam dla Was ważną informację dotyczącą naszej serii „Czas Pythona”. Ze względu na obecną sytuację w moim życiu osobistym, muszę dostosować harmonogram publikacji. Od teraz wpisy będą pojawiać się domyślnie co dwa tygodnie. Nie oznacza to jednak, że posty co tydzień to już przeszłość! Jeśli uda mi się wygospodarować dodatkowy czas, chętnie przygotuję […]

Czytaj więcej
Czas Pythona: Bajgle #2

Czas Pythona: Bajgle #2

Dziś kontynuujemy mikro serię artykułów o grze Bajgle w Python. Dokładniej będziemy dalej pisać skrypt ją realizujący, jeśli jeszcze nie czytałeś, to zapraszam do poprzedniego odcinka. Zatem dziś kontynuujemy Bajgle, czyli grę polegającą na dedukcji liczby. W ostatnim artykule skończyliśmy na 'podpętli’ w pętli głównej. Dokładniej mieliśmy odczytywać odpowiedź gracza i zabezpieczyć się przed błędnymi […]

Czytaj więcej
Czas Pythona: Bajgle #1

Czas Pythona: Bajgle #1

Dziś zaczynamy nową serię postów pod tytułem Czas Pythona. Będzie to seria gdzie będziemy realizować konkretne projekty w Pythonie, by trochę potrenować w praktyce. W tej serii trochę się rozpiszę, bo i projekty podzielę na kilka artykułów, byś miał czas poszukać czegoś czasem na własną rękę. Zaczynamy od gry Bajgle w Pythonie. Jest to gra, […]

Czytaj więcej
Myśląc o Pythonie: Błędy i wyjątki

Myśląc o Pythonie: Błędy i wyjątki

Opowiedzmy sobie o dość podstaowej rzeczy. Jako ludzie, nie jesteśmy wcale doskonali i popełniamy błędy, coś czasem przeoczymy, coś nam nie do końca wyjdzie. Błądzić i mylić się ludzka rzecz, a programiści jak się okazuje to też ludzie. Zatem wymyślili coś by radzić sobie z błędami, czy tzw. wyjątkami. Porozmawiajmy zatem co to są błędy […]

Czytaj więcej
Myśląc o Pythonie: Moduły

Myśląc o Pythonie: Moduły

Python jest jednym z tych języków programowania, które wyróżniają się przejrzystością i prostotą. Ale co zrobić, gdy nasz projekt zaczyna rosnąć i pojawia się chaos w kodzie? Wtedy wchodzą na scenę moduły. Zacznijmy powieść o tej niezwykle przydatnej konsepcji jaką są moduły. Są to twory zwiększające przejrzystość i uporządkowanie projektów na całym świecie – a […]

Czytaj więcej
Myśląc o Pythonie: Generatory

Myśląc o Pythonie: Generatory

Dziś kolejna koncepcja, po dekoratorach, trochę bardziej zaawansowana. Mianowicie generatory, czyli mechanizm pozwalający zatrzymać wykonywanie funkcji w dowolnym momencie i wznowić je później.. Możemy wyobrazić sobie funkcję wykonującą 1000 operacji lub przetwarzającą ogromne ilości danych – zamiast czekać na zakończenie całości operacji moglibyśmy 'zapauzować’ wykonywanie. Innymi slowy, moglibyśmy wykonwać 10 operacji z 1000 i się […]

Czytaj więcej
Myśląc o Pythonie: Dekoratory

Myśląc o Pythonie: Dekoratory

I przychodzi czas na Dekoratory i udekorowanie naszego kodu 🙂 Tworząc sobie radośnie funkcje, i przestrzegając przy tym zasady DIY można natrafić na problem, gdy przykładowo mamy funkcję x. Chcemy jednak mieć jeszcze jedną funkcję, robiącą praktycznie to samo co x, ale z pewnymi dodatkami. Nie chcemy też jednocześnie przepisywać jeszcze raz tego samego kodu. […]

Czytaj więcej