Szyfr Cezara
Szyfrowanie podstawieniowe to najprostsza klasa technik kryptograficznych, w których każda litera tekstu jawnego jest zastępowana inną literą według ustalonej reguły. Mechanizm jest deterministyczny, łatwy do implementacji i zrozumienia, a jednocześnie dobrze pokazuje podstawowe…
Rekurencja
Rekurencyjne podejście do rozwiązywania problemów pojawia się naturalnie tam, gdzie struktura danych lub samego zadania ma charakter samopodobny, czyli można je rozbić na mniejsze instancje tego samego problemu. W praktyce oznacza to, że…
Ascii: jak działa na poziomie bitów i dlaczego ten standard przetrwał dekady mimo ograniczeń
Kodowanie znaków to fundament komunikacji między programem a człowiekiem, a także między różnymi systemami. Każdy tekst zapisany w pliku, przesłany przez sieć albo wyświetlony na ekranie jest w rzeczywistości sekwencją liczb. Te liczby…
Print – wypisuje dane na standardowe wyjście
Program zaczyna być użyteczny dopiero wtedy, gdy potrafi komunikować się z użytkownikiem lub z innym procesem. Najprostszą formą takiej komunikacji jest wypisanie informacji na ekranie terminala, konsoli lub standardowego strumienia wyjściowego. To właśnie…
Getattr – pobiera wartość atrybutu obiektu na podstawie jego nazwy w formie stringa
W programowaniu obiektowym bardzo często pojawia się potrzeba dynamicznego odczytu danych z obiektu bez sztywnego odwoływania się do konkretnej nazwy pola w kodzie. Problem staje się widoczny szczególnie wtedy, gdy nazwa atrybutu pochodzi…
zip – łączy kilka iterowalnych obiektów w pary
W praktyce pracy z danymi bardzo często pojawia się potrzeba równoległego przechodzenia przez kilka struktur jednocześnie, bez ręcznego zarządzania indeksami i bez ryzyka rozjechania się długości zbiorów. Właśnie w takich sytuacjach wykorzystywana jest…
Setattr – ustawia wartość atrybutu obiektu dynamicznie
W programowaniu obiektowym często pojawia się potrzeba modyfikowania obiektu bez ręcznego odwoływania się do każdego pola osobno. Dotyczy to konfiguracji klas, mapowania danych z formularzy, importu plików JSON, budowania prostych ORM czy automatycznego…
Rozszerzony algorytm Euklidesa w praktyce obliczeniowej i teorii liczb krok po kroku
W teorii liczb bardzo często trzeba nie tylko znaleźć największy wspólny dzielnik dwóch liczb, ale również wyznaczyć konkretne współczynniki, które pozwalają ten dzielnik zapisać jako kombinację liniową tych liczb. To nie jest detal…
Ciąg Fibonacciego Python w praktyce – rekurencja, iteracja i analiza złożoności algorytmu
Liczby Fibonacciego są jednym z najczęściej używanych przykładów podczas nauki algorytmiki, ponieważ na prostym schemacie pokazują kilka ważnych rzeczy naraz: zależność rekurencyjną, koszt obliczeń, pamięć programu i różnicę między rozwiązaniem eleganckim a rozwiązaniem…
Pierwiastkowanie Python w praktyce programisty i poprawne obliczanie pierwiastków krok po kroku
Obliczanie pierwiastków należy do tych operacji, które pojawiają się szybciej, niż zwykle zakłada początkujący programista. Wzory geometryczne, analiza danych, statystyka, algorytmy numeryczne, grafika komputerowa czy nawet proste zadania szkolne bardzo często wymagają wyznaczenia…









