Formatowanie ciągu znaków w Python

„(„+str(x)+”)” czy f'({x})’ ?

Formatowanie ciągu znaków w Python

Po opublikowaniu poprzedniego artykułu z cyklu „Wtorki z Pythonem” dostałem od jednego z czytelników pytanie, dlaczego tak dziwnie skonstruowałem wywołanie funkcji print(). Chodziło o zapis print("(%s,%s)" % (self.x, self.y)). W dzisiejszym artykule wyjaśnię, dlaczego taka konstrukcja była konieczna, oraz jak można ten sam wynik osiągnąć innymi sposobami. Odpowiednie formatowanie zmiennych by wyświetlić je na ekranie konsoli to jedna z podstawowych umiejętności jakie każdy musi posiadać.

Czytaj dalej
Konstruktor klasy w Python

Konstruktor klasy

Konstruktor klasy w Python

Współczesne języki programowania, zarówno te kompilowane jak i interpretowane, wykorzystują koncepcję programowania obiektowego. Polega ona na modularyzowaniu kodu programu na małe funkcjonalne części zwane obiektami. Są to swego rodzaju „klocki”, z których następnie składamy cały program. Są one na tyle uniwersalne, że używamy je w różnych programach. Obiekty te nazywane są klasami, które składają się z atrybutów (zmiennych) oraz metod (funkcji). Jedną ze specjalnych funkcji jest konstruktor klasy.

Czytaj dalej
Tabele w ASCII

Tabele w ASCII

Tabele w ASCII

Gdy piszę różnego rodzaju skrypty w języku Python nie raz spotkam się z koniecznością wyświetlenia informacji na konsoli. Zazwyczaj wykorzystuję do tego systemową funkcję print(), lub bibliotekę pprint. Duża ilość informacji najlepiej zaprezentować w formie tabelarycznej. W repozytorium PiPy znajduje wiele bibliotek obsługujących tabele w ASCII pozwalających na wyświetlanie sformatowanych danych na tekstowej konsoli terminala systemu operacyjnego. Zaprezentuję Ci teraz moją ulubioną, bardzo prostą w użyciu bibliotekę PTable, która jest klonem popularnej biblioteki prettytable.

Czytaj dalej
Listy część 2

Listy w Python, cz. 2

Listy część 2

W pierwszej części pokazałem jak definiować listę oraz w jaki sposób odczytywać pojedyncze, lub całe grupy elementów listy. Operacji na listach i jej elementach jest nieco więcej. Raz utworzona lista nie jest obiektem stałym i można zarówno modyfikować wartość każdego z jej elementów jak i dodawać oraz usuwać poszczególne elementy. Listy w Python pozwalają na przeprowadzenie tych operacji w prosty sposób. W tym artykule zaprezentuję Ci jak to zrobić.

Czytaj dalej
Enumerate i przeglądanie elementów listy

Enumerate() i przeglądanie elementów listy

Enumerate i przeglądanie elementów listy

Wykonując operacje na listach musimy jasno sprecyzować, do którego je elementu chcemy uzyskać dostęp. Dokonujemy tego za pomocą indeksów wskazując wprost interesujący nas element listy. Często jednak dane zapisane na liście przetwarzamy w pętli. Pokażę Ci w jaki sposób najprościej w pętli odczytać kolejne wartości elementów listy oraz ekstremalnie przydatny sposób wykorzystania funkcji enumerate() do znalezienia numeru indeksu listy, pod którym poszukiwana wartość została zapisana.

Czytaj dalej
Listy w Python, część 1

Listy w Python, cz. 1

Listy w Python, część 1

Są takie umiejętności, które każdy programujący w dowolnym języku programowania musi umieć posiadać. Nie inaczej jest w Pythonie. W serii „wtorki z Pythonem” będę poruszał także bardziej podstawowe zagadnienia związane z programowaniem, które nie tylko dla osób początkujących mogą stanowić przydatne kompendium wiedzy. W tym tygodniu zajmę się typem danych, jakim są listy.

Czytaj dalej
Pull Request w Git

Pull Request w Git

Pull Request w Git

Dzisiaj słowo o tym, jak pracuje się wspólnie nad projektami i wprowadzaniem zmian do kodu. Z oczywistych względów do kodu programu nie mogą być wprowadzone żadne zmiany dokonane przez dowolną osobę. Zmiany takie muszą być zatwierdzone przez właściciela projektu lub osoby przez niego wyznaczone. Niemniej ważnym aspektem jest to, aby praca dwóch osób nie kolidowała ze sobą, a zaakceptowane zmiany na koniec były spójne. Służy temu mechanizm Pull Request.

Czytaj dalej
Dynamiczne wywołanie funkcji

Dynamiczne wywołanie funkcji

Dynamiczne wywołanie funkcji

Język Python ma sporo ukrytych ciekawych funkcjonalności. Wiele z nich odpowiednio wykorzystane mogą uprościć kod naszej aplikacji, eliminując skomplikowane konstrukcje warunków. Jedną z moich ulubionych jest możliwość wywoływania metod poprzez dynamiczne tworzenie ich nazwy w wywołaniu z zastosowaniem zmiennych. Ta technika nie ma swojej unikalnej nazwy. Dla mnie jest to najczęściej dynamiczne wywołanie funkcji.

Czytaj dalej