Przydatne funkcje w języku Python – komendy podstawowe, indeksowanie ujemne i operacje na tekstach

Zadania maturalne z programowania wymagają od Ciebie wymyślenia własnego algorytmu. Często jednak zdarza się, że wymyślony kod korzysta z rozwiązań, które są powszechnie spotykane w informatyce. Projektanci języków programowania starają się dbać o to, żeby rozwiązywanie typowych problemów było łatwo dostępne dla programistów. Idealnym przykładem jest język Python, w którym przetwarzanie list (tablic) odbywa się za pomocą wbudowanej notacji, która niedostępna jest w językach takich jak C++ czy Java.

Python – komendy podstawowe

Pod spodem znajdziesz listę podstawowych komend obecnych w Pythonie. Przyda się jeśli potrzebujesz przypomnienia którejś z nich:

Komenda – PythonOpis
print(“Witaj, Swiecie!”)Wyświetla napis “Witaj, Swiecie!” w konsoli.
x = 5Przypisuje wartość 5 do zmiennej x.
if x>y:Rozpoczyna blok warunkowy.
else:Rozpoczyna blok, który wykonuje się, gdy warunek w if nie jest spełniony.
for element in lista:Pętla for, iteruje po elementach iterowalnych (listy, krotki, itp.).
while warunek:Pętla while, wykonuje się dopóki warunek jest spełniony.
def funkcja():Definiuje funkcję.
return wartoscZwraca wartość z funkcji.
import modulImportuje moduł.
from modul import elementImportuje określony element (funkcję, klasę, zmienną itp.) z modułu.
try:Rozpoczyna blok try (obsługa wyjątków).
except Wyjatek as e:Obsługuje wyjątek w bloku except.
class MojaKlasa:Definiuje klasę.
obiekt = MojaKlasa()Tworzy instancję klasy.
with open(“plik.txt”, “r”) as plik:Otwiera plik i zarządza nim w bloku with.

Dalej znajdziesz kilka ciekawych funkcji w Pythonie, które ułatwią pracę na maturze z informatyki.

Indeksowanie ujemne – Python

Python - komendy
Podstawowe komendy w Pythonie są wykorzystywane w każdym programie. Z łatwością je zapamiętasz, gdy zaczniesz ich częściej używać. Praktyka jest w tym przypadku podstawą.

Na rozgrzewkę poruszymy temat indeksowania ujemnego w tablicach. Na maturze bardzo przydatne może okazać się pobieranie elementu z listy (tablicy), który jest nie na jej początku, ale na końcu. Wówczas możesz zastosować notację:

Zauważ, że to samo możesz osiągnąć za pomocą funkcji len, która zwraca długość tablicy. Powyższa linijka równoważna jest z:

Listę w Pythonie możesz zatem wizualizować sobie jak ciąg elementów, na którym można operować od lewej lub od prawej (zamiennie).

startswith() i endswith() – sprawdzenie rozpoczęcia lub zakończenia tekstu Python

Skoro jesteśmy jeszcze przy prostych funkcjach, możemy sobie pozwolić na szybkie pokazanie, w jaki sposób działają startswith() i endswith():

Funkcje te sprawdzają, czy dany ciąg znaków (string) zaczyna się lub kończy podanym w argumencie tekstem.

upper() i lower() – zmiana znaków na DUŻE lub małe w języku Python

Kolejne proste funkcje w Pythonie, które warto znać wybierając się na egzamin maturalny, to upper() i lower(). Metody te zamieniają wszystkie litery w łańcuchu znaków na wielkie lub małe.

strip(), lstrip() i rstrip() – usunięcie określonej części tekstu

Metody te są bardzo przydatne w przypadku operacji na ciągach znaków (stringi). Zdarzają się zadania maturalne, które wymagają od Ciebie usunięcia pewnych elementów, które występują na początku lub na końcu napisu. Podane funkcje rozwiązują właśnie takie przypadki. Jako argument przyjmują one listę elementów, których chcesz się pozbyć.

Użycie metody lstrip() na liście powoduje usuwanie od lewej strony wszystkich wystąpień elementów przekazanych w argumencie do momentu, kiedy pojawi się pierwszy element, niewystępujący w podanym przez Ciebie argumencie.

ads banner

 

Metoda rstrip() działa tak samo, lecz od prawej strony, a metoda strip() – od obu stron – czyli usuwa znaki zarówno z lewej jak i prawej strony. Jeśli nie podasz argumentu przy wywoływaniu tych metod, otrzymasz napis, z którego zostaną usunięte początkowe oraz końcowe znaki białe (w tym spacje). Warto poświęcić trochę czasu i przetestować działanie wymienionych metod, ponieważ ich zrozumienie może powodować trudności.

Poniżej znajdziesz dość proste przykłady użycia wyżej wymienionych funkcji:

A tutaj już mniej oczywiste. Przeklej poniższy kod do swojego IDE i zastanów się jak on działa.

Konwersja między typami zmiennych – Python

Zmiana typu zmiennych w języku Python jest bajecznie prosta. Wystarczy użyć funkcji, która jest nazwą typu zmiennej docelowej. Tym sposobem można na przykład zamienić string na int albo float na int itd.

Konwersja między systemami liczbowymi – Python

Konwersja - systemy liczbowe - Python
Zrozumienie konwersji systemów liczbowych jest ważne na egzaminach, zwłaszcza w kontekście matury z informatyki, gdzie często występują zadania związane z przeliczaniem liczb między różnymi systemami.

Język Python oferuje Ci także możliwość zamiany podstawy liczby podczas konwersji typu string na int. Wówczas możesz pozyskać rzeczywistą wartość liczby zapisanej w postaci napisu, przez podanie dodatkowego parametru base w wywołaniu funkcji. Np.:

Podawanie wprost nazwy parametru “base=” jest opcjonalne i nie trzeba go pisać. Poniższy kod też zadziała poprawnie:

W tym momencie, aby przekonwertować liczbę na inny system, możesz skorzystać z wbudowanych funkcji bin(), oct() i hex(), które zamieniają liczbę całkowitą na string o odpowiedniej podstawie 2, 8 lub 16. Problematyczny może jednak okazać się fakt, że funkcje te dodają odpowiedni prefiks w zależności od podstawy. String powstały w wyniku funkcji bin(), będzie miał na początku ‘0b’, w przypadku funkcji oct() – ‘0o’, a w przypadku hex() – ‘0x’. Jednak z pomocą przyjdzie Ci omówiona wcześniej funkcja lstrip() lub slicing opisany w jednym z kolejnych akapitów.

W przypadku zadań z programowania na praktycznej części matury, zamiana liczb między najpopularniejszymi systemami w języku Python nie wymaga od Ciebie wiele myślenia i jest dużo prostsza niż np. w języku C++.

index() i count() – indeks oraz liczba elementów w ciągu Python

Kolejne przydatne, lecz bardzo proste funkcje to index() oraz count(). Sprawdzają one, czy dana lista (ciąg elementów) zawiera przekazany parametr, w jakim miejscu (funkcja index), a także ile razy występuje (funkcja count).

Co ciekawe, obie funkcje mogą być wykorzystane do podania pozycji litery lub zliczenia wystąpień litery w napisie! Przeanalizuj poniższy przykład:

Obie funkcje będą bardzo przydatne podczas rozwiązywania zadań maturalnych. Na przykład do sprawdzenia ile razy wystąpiła dana litera w napisie – zamiast pisać ręcznie zliczacz liter, można wykorzystać funkcję count().

Slicing – ucinanie list w Pythonie

Trudniejszym tematem, który okazuje się być bardzo przydatny na maturze będzie tzw. „slicing”, czyli „krojenie na części”. Zacznijmy od pokazania paru przykładów:

Łatwo zauważyć, że w notacji lista[start:stop] start oznacza indeks elementu, od którego zaczynamy tworzenie nowej listy, a stop – końcowy. W przypadku, gdy start lub stop nie jest podany, traktujemy je odpowiednio jako 0 i len(lista), czyli jako długość listy. Na maturze składnia ta może być pomocna w przypadku modyfikacji stringów, na przykład przy konwersji liczb dwójkowych na szesnastkowe. Wówczas możesz pobierać po 4 cyfry liczby zapisanej jako łańcuch znaków za pomocą slicingu:

W wielu językach taki efekt można osiągnąć za pomocą funkcji substring, ale jej użycie ograniczone jest tylko do stringów.

Dla bardziej dociekliwych warto dodać, że przy slicingu można użyć także trzeciego argumentu, który oznacza, o ile elementów będziesz przeskakiwać (krok może być ujemny). Co ciekawe, możesz skorzystać ze slicingu w formie napis_string[::-1], dzięki czemu uzyskasz odwrócony tekst. Pozwoli to na łatwe sprawdzenie, czy jest palindromem (wygląda identycznie czytany z obu stron), poprzez porównanie z jego oryginalną wersją. Poniżej przykład nieoczywistego wykorzystania slicingu. Przeanalizuj dokładnie poniższe przykłady:

Podsumowanie

Omawiane tematy, takie jak indeksowanie ujemne, funkcje tekstowe, konwersje między typami zmiennych czy slicing, są kluczowymi elementami składającymi się na znaczne ułatwienie programowania w Pythonie. Są to uniwersalne funkcje, które przydadzą Ci się zarówno w czasie matury, jak i podczas pracy nad własnymi projektami. Znajdziesz dla nich wiele zastosowań, a przy tym znacznie skrócą i uproszczą kod programu. Warto poświęcić czas na zapoznanie się z nimi i stosowanie ich w praktyce, co z pewnością zaprocentuje w przyszłości.

Zadania do samodzielnej implementacji

  1. Napisz program, który będzie konwerterem liczb między różnymi systemami liczbowymi. Użytkownik powinien móc wybrać, w jakim systemie wpisuje liczbę oraz do jakiego systemu chce ją przekonwertować. Wykorzystaj funkcje opisane w powyższym wpisie.
  2. Napisz program, który pobierze od użytkownika ciąg znaków i wypisze z niego wszystkie znaki, które nie są cyframi, oddzielając je znakiem nowej linii. Wykorzystaj funkcje strip(), lstrip lub rstrip() oraz slicing.

Sprawdź jeszcze więcej funkcji w języku Python, które przydadzą się na maturze z informatyki!

Najczęściej zadawane pytania o przydatne funkcje w Pythonie

Dlaczego indeksowanie ujemne może być przydatne w programowaniu?

Indeksowanie ujemne znacznie ułatwia pisanie kodu. Zamiast sprawdzać długość konkretnej listy i dopiero na tej podstawie określać ostatnie elementy, wystarczy skorzystać z indeksowania ujemnego. Jak więc widać zamiast dwóch linijek wystarczy zaledwie jedna, co na dłuższą metę robi dużą różnicę.

Dodatkowo też jeśli potrzebne jest działanie na elementach listy w odwrotnej kolejności, również możesz łatwo sobie z tym poradzić za pomocą indeksowania ujemnego. Jest to więc proste rozwiązanie, które znacznie ułatwi Ci Twoją programistyczną przygodę.

Czy funkcje startswith() i endswith() są wrażliwe na wielkość liter?

Tak, obie funkcje są domyślnie wrażliwe na wielkość liter. Także różnice w wielkości liter wpływają na wynik sprawdzania, czy dany napis zaczyna się lub kończy określonym tekstem.

Czy upper() i lower() modyfikują oryginalny napis, czy zwracają nowy?

Metody upper() i lower() nie modyfikują oryginalnego napisu. Zamiast tego zwracają nowy napis, który zawiera wszystkie litery w odpowiednio zmienionej wielkości. Oryginalny napis pozostaje bez zmian.

ads banner

Wpisy, które mogą Cię zainteresować: